网络通讯

Posted xiamenghan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络通讯相关的知识,希望对你有一定的参考价值。

首先应用软件的构架:1、C/S(client === server)  2、B/S(browser ===server)。在不同的计算机上 一个安装客户端 另一个安装服务端 通过网络来通讯

那什么是网络通讯呢?1、要完成通讯必须具备的条件:物理连接介质(网线,wifi,光纤),2、必须遵循相同的标准。

在计算机网络中同样需要具备以上两个条件,作为应用软件开发者,不需要关心第一步 重点是通讯的标准(通讯的协议)

网络协议:

  open system interconnection

  OSI七层模型

技术分享图片
应用(表示和会话都属于应用层,应用层没有固定的协议 需要双方程序员商量)
表示
会话
传输(TCP/UDP port端口号 用于唯一标识一个应用程序)
网络(ip协议 找到一个唯一的局域网 再找到局域网的一台计算机)
数据链路层(以太网协议 发送二级制的格式 mac标识唯一一台计算机)
物理 (发送二进制)
osi 七层协议

我们需要关注的是传输层的协议 ,但是像TCP这种协议原理还是很复杂的,为了简化这些复杂操作,在传输层之上封装了socket抽象层,就可以在完成网络通讯时直接使用socket封装好的功能

所以说学习网络编程 其实就是在学socket      socket是什么???
   socket翻译过来称为套接字 是对底层的 TCP、 IP、 UDP等网络协议进行封装 使得上层的应用程序开发者,不用直接接触这些复杂的协议(其实就是一个封装好的模块)

 

 

TCP和UDP是传输层最常见的协议

TCP主要传输方式是三次握手,四次挥手

  优点:通过三次握手来与服务器建立连接,可以保证数据的完整性

  缺点:传输效率低

  使用的场景是文字聊天、支付宝转账等等

UDP主要传输方式就是不需要建立连接,直接发送

  缺点:不能保证数据的完整性

  优点:传输效率比TCP高

  使用场景是视频通话,语音通话

在python中使用socket需要关心的是ip地址,port端口,传输协议TCP/UDP,你要发送的数据data,在编写网络编程时,一定有两台代码代表着服务器和客户端

 

 



以上是关于网络通讯的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段14——Vue的axios网络请求封装

golang代码片段(摘抄)

异常和TCP通讯

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

201555332盛照宗—网络对抗实验1—逆向与bof基础

20155201 李卓雯 《网络对抗技术》实验一 逆向及Bof基础