前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >网络协议

网络协议

作者头像
用户7962184
发布2022-05-13 18:59:33
5300
发布2022-05-13 18:59:33
举报
文章被收录于专栏:没事多喝水没事多喝水
  • 网络协议为计算机网络中进行数据交换而建立的规则,标准或约定的集合,它规定了通讯时信息必须采用的格式和这些格式所代表的意义。网络协议使网络上各种设备能够相互交换信息。
  • TCP/IP协议是internet网络的基础协议,他不是一个协议,而是一个协议族的统称。
  • TCP/IP协议族包括TCP协议,IP协议和ICMP协议和HTTP协议等。
  • TCP/IP协议层次结构分成四层,从下到上分别是网络访问层,网际层,传输层,应用层。
  • 物理层对应网卡,其中lo表示回环接口,eth是以太网网络适配器。linux中可以用ifconfig查看。
  • MAC地址是一种标识符,标记网络中的每个设备,每个传输的数据包都会包含发送方和接收方的物理地址。
  • 但是网络设备对物理地址的处理能力有限,物理地址只在当前局域网内有效。
  • MAC地址是预留并且固化在硬件上的。
  • 以太帧在网络层接收到数据报之后,会将数据报进行以下处理
  1. 如果数据块太大,会分成小块。
  2. 在数据报打包成帧,增加一些以太网网络适配器处理帧所需要的数据(头部:目的mac地址,源mac地址,这个数据报是什么类型,结尾:校验码)
  3. 把帧发给物理层,物理层把数据变成流发给以太网的其它网络适配器,其它网络适配器收到这个数据之后,检查其中的目的地址是否匹配,如果匹配则发给上层。
  • IP地址是互联网协议特有的一种地址,IP地址为互联网的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
  • 为什么不直接使用MAC地址是因为MAC地址并不表示真正的地址信息,无法寻址。
  • ip地址的基本构成部分,包括两个标识码,网络ID和主机ID。
  1. 网络ID:用于识别主机所在的网络,网络ID的位数决定了可以分配的网络数量。
  2. 主机ID:用于识别该网络中的主机,主机ID的位数则决定了网络中最大的主机数量。

为此,IP地址分成了三类。

A类,前八位表示网络ID,后24位表示主机id,给政府机关单位使用。

b类,前16位表示网络id,后16位表示主机id,分配给中等规模的企业使用。

C类,前24位表示网络id,后8位表示主机id,该地址分配给任何需要的人使用。

是通过网络号的头几位区分abcde三类。a:0,b:10,c:110,d:1110,e:11110.

  • 子网划分是通过将ip地址的主机id区分成子网id和主机id,是为了能够更高效的进行数据传输。
  • 在一个路由式网络中,源地址主机向目标地址主机发送数据时,IP协议是如何将数据成功发送到目标主机上面的呢。
    1. 同网段的情况下,如果原地址和目标地址主机在同一网段,ip地址会被ARP解析为MAC地址,然后根据MAC地址,源主机直接把数据包发给主机。
    2. 不同网段的情况下,网关(路由器)的IP地址被ARP协议解析成MAC地址,根据该MAC地址,源主机将数据包发给网关。如果网关找到了目标网段,发送过去,重复1,否则发送到上一级网关,重复2。
  • ip数据报的信息内容.
  • ip数据报的最长长度是65535个字节.
  • 其中有个标识是可以用来将被分片的数据重组成原来的数据报,是个计数器.
  • 标志是用来说明是否允许分片.
  • 生存时间是用来防止无法交付的数据报无限制地在网络中传输,从而消耗网络资源.
  • 协议说明数据的内容.
  • 首部校验和因为ttl等的存在,会经常变,但是数据检验和不会变.
  • ARP是地址解析协议,会根据ip地址获得物理地址.
  • ARP的工作流程,主机A以广播的形式向网络中的所有主机发送ARP请求,请求ip是主机b的ip,主机b收到之后,返回响应,内容是自己的mac地址.
  • 为了节约网络资源,提高响应速度,每台主机都有一个ARP高速缓存,无需再发送ARP请求,从而节约了网络资源.
  • 通过免费ARP包是将目标ip是自己的ip地址的包发送出去,有三个作用.
  1. 为了告诉其他计算机自己的IP地址和MAC地址.
  2. 检测IP冲突.
  3. 更新 其他计算机的ARP缓存表.
  • ICMP包是为了了解数据包在哪个环节出现了问题,可以跟踪消息,把问题反馈给源主机.ping命令就是借助ICMP传输协议的.
  • traceroute可以用来检测发出数据包的主机到目标主机之间所经过的网关.通过设置探测包的TTl,跟踪数据包到达目标主机所经过的网关,监听来自网关ICMP的应答.
  • 网际层提供了主机之前的逻辑通道,那数据包到达主机之后,就需要依赖传输层了,传输层提供了应用程序之间的端到端连接,作用如下:为网络应用程序提供接口,为端到端连接提供流量控制,差错控制,服务质量等管理服务.提供多路复用,多路分解机制.
  • 为了区分同一台主机上面不同应用程序的数据包,传输层提供了端口和套接字.端口号用来识别应用程序.
  • 套接字socket,可以区分不同应用程序间的网络通讯和连接.
  • 多路复用:从源主机的不同套接字中收集数据库,并且能为每个数据块封装首部信息,从而生成报文段,然后将报文段传递到网络层中.
  • 多路分解,能把传输层报文段中的数据交付到正确的套接字.

TCP协议作用:

  1. 面向流的处理:TCP以流的方式处理数据.TCP可以一个字节一个字节地接收数据,而不是一次接收一个预订格式的数据块.
  2. 重新排序,就算TCP数据报以错误的顺序到达目的地,也能重新排序,恢复原始数据.
  3. 流量控制,TCP能确保数据传输不会超过目的计算机接收数据的能力.
  4. 优先级和安全,
  5. 适当的关闭.

源端口和目的端口,序列号,确认号,标志位,

  • CWR(Congestion Window Reduce):拥塞窗口减少标志,用来表明它接收到了设置 ECE 标志的 TCP 包。并且,发送方收到消息之后,通过减小发送窗口的大小来降低发送速率。
  • ECE(ECN Echo):用来在 TCP 三次握手时表明一个 TCP 端是具备 ECN 功能的。在数据传输过程中,它也用来表明接收到的 TCP 包的 IP 头部的 ECN 被设置为 11,即网络线路拥堵。
  • URG(Urgent):表示本报文段中发送的数据是否包含紧急数据。URG=1 时表示有紧急数据。当 URG=1 时,后面的紧急指针字段才有效。
  • ACK:表示前面的确认号字段是否有效。ACK=1 时表示有效。只有当 ACK=1 时,前面的确认号字段才有效。TCP 规定,连接建立后,ACK 必须为 1。
  • PSH(Push):告诉对方收到该报文段后是否立即把数据推送给上层。如果值为 1,表示应当立即把数据提交给上层,而不是缓存起来。
  • RST:表示是否重置连接。如果 RST=1,说明 TCP 连接出现了严重错误(如主机崩溃),必须释放连接,然后再重新建立连接。
  • SYN:在建立连接时使用,用来同步序号。当 SYN=1,ACK=0 时,表示这是一个请求建立连接的报文段;当 SYN=1,ACK=1 时,表示对方同意建立连接。SYN=1 时,说明这是一个请求建立连接或同意建立连接的报文。只有在前两次握手中 SYN 才为 1。
  • FIN:标记数据是否发送完毕。如果 FIN=1,表示数据已经发送完成,可以释放连接。
  • 三次握手,1:ACK = 0 SYN = 1 SEQ = x ack 无效2:ACK = 1,SYN= 1 ,ack = x + 1,seq = y 3:ACK = 1,SYN = 0,syn = x + 1 ,ack = y +1
  • 滑动窗口减少了等待确认应答的时间。
  • 发送窗口的大小一开始是由发送方根据当前链路带宽大小决定的,之后靠接收端返回,如果接收端返回了0,那么发送方会停止发送,并在一段时间(重发超时时间)没有接收到窗口更新包,发送方会发送窗口探测包。
  • 四次挥手,1:FIN=1,seq=x,2:seq= y,ACK = x + 1,3 数据传送完毕之后,FIN= 1,seq = z,ack = x + 1 ,4:ack = z + 1 seq = x + 1
  • UDP协议具有以下特点,没有各种连接,不重新排序,没有确认。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档