用多少眼泪才能让你相信 发表于 2024-9-11 13:09:28

计算机网络第五章--传输层

https://i-blog.csdnimg.cn/blog_migrate/cc1d26fa2d6f7231c0db0c2a6f587beb.png

一、传输层提供的服务

1.传输层

https://i-blog.csdnimg.cn/blog_migrate/57e5a019688b652357cbdfc47184ed3d.png
   中间的网络装备最多只能到网络层
    进程和进程之间的逻辑通信 —— 外貌上是两个主机的进程之间在通信。但实际是把数据从上层进行步步封装传给物理层,物理层放到链路上传输,到对端再至下而上把数据解封装交付给上层
    复用:发送方差别的应用进程可以利用同一个传输层协议来传输数据   传输层--->网络层
分用:吸收方在传输层去掉报文首部后可以或许把数据送交给正确的进程   网络层--->传输层
    网络层的首部校验和只校验IP数据报头部没有校验数据部分,须要高层实现对数据的检错。网络层的数据部分就是传输层的报文段,因此传输层如果对报文进行不对检测,那网络层就不须要再对报文进行不对检测。网络层+传输层可以实现可靠传输
传输层并不一定会实现可靠传输(UDP)
2.传输层的两个协议

https://i-blog.csdnimg.cn/blog_migrate/5e1ff23972f20d12bb00a5fc941ade2e.png
   方便起见可将两个协议的传输单元都称为报文段
    QQ发送一条消息即利用UDP协议
3.传输层寻址与端口

如果要发送数据给一台主机,在网络当中根据其IP地点探求到它所在的网络,进入它所在的网络后再根据MAC地点再定位到具体的主机。找到主机后还应根据端口交付给具体的应用进程
端口:逻辑端口/软件端口,是传输层的SAP,标识主机中的应用进程
   路由器和交换机上那种可以直接插拔的端口叫做硬件端口。而传输层的端口是看不见摸不着的,所以叫软件端口
用端口号来标识端口,端口号只有本地意义,在因特网中差别计算机的类似端口没有联系
端口号长度为16bit,可以体现2^16 = 65536个差别的端口号
https://i-blog.csdnimg.cn/blog_migrate/dc60ed315717f64c52c3777564fb5861.png
   客户端利用的端口号只有在利用时才会由操作系统随机分配,进程结束就会端口号被回收

一些常用的端口号:
https://i-blog.csdnimg.cn/blog_migrate/a653116ac0971280cc154a1440fd2571.png

在网络中接纳发送方和吸收方的套接字组合来识别端点,套接字唯一标识了网络中的一个主机和它上面的一个进程。
套接字Socket= (主机IP地点, 端口号)
二、UDP协议

1.用户数据报协议UDP概述

UDP只在IP数据报服务之上增长了很少功能,即复用分用和不对检测功能
注意!!!!!!!!!!!!!!!!!!:
UDP的主要特点:

[*] UDP是无连接的,淘汰开销和发送数据之前的时延
[*] UDP利用最大积极交付,即不保证可靠交付,可靠性由UDP上层即应用层保证
[*] UDP是面向报文的,适合一次性传输少量数据的网络应用
https://i-blog.csdnimg.cn/blog_migrate/81c3e8b9869e599f5717537447faf5f4.png       因此应用程序须要选择巨细合适的报文,报文太长则网络层须要分片以满足链路层MTU的要求,如许就会低落网络层的效率
[*] UDP无拥塞控制,适合及时应用(比如IP电话、视频会议)
[*] UDP首部开销小,只有8B,TCP20B
2.UDP首部格式

https://i-blog.csdnimg.cn/blog_migrate/e17fc95f6defbb92f0df0e1886a83490.png
   一定会有首部字段,数据字段可以为0
    16位源端口号可有可无。如果期望收到对方的复兴则添上,如果不须要就可以是全0。目的端口号一定要有
16位UDP长度单位是1B
3.UDP校验

https://i-blog.csdnimg.cn/blog_migrate/4ba65149d9257895122c1a25e5385be0.png
   17就是IP数据报首部的协议字段,这个协议字段说明IP数据报数据部分利用什么协议,这里数据部分利用UDP协议,对应的协议字段值是17

https://i-blog.csdnimg.cn/blog_migrate/918c56c55bfae1845c6b43605f22eab0.png
三、TCP协议

1.TCP协议特点和TCP报文段

1)TCP主要特点


[*] TCP是面向连接(虚连接)的传输层协议
       虚连接 —— 并不是实际的物理连接,只是利用时就好像两个进程之间直接建立了点对点的连接。实际上连接过程是把数据报加上各个层次的首部之后放到链路上传输,然后在吸收端进行步步解封装,这是一个完整的物理连接
[*] 每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的
       TCP协议不能用于广播和多播通信方式
[*] 提供可靠交付的服务,无不对、不丢失、不重复、按序到达。可靠有序,不丢不重
[*] 提供全双工通信
       发送方和吸收方角色不定,两边可以同时发送数据也可以同时吸收数据
          TCP协议连接的两端都会设置发送缓存,吸收缓存
    发送缓存:应用层准备发送的数据&已发送但尚未收到确认的数据
    吸收缓存:按序到达但尚未被应用程序读取的数据&不按序到达的数据
[*] TCP面向字节流
       流:流入到进程或从进程流出的字节序列
          固然进程和TCP交互时一次发送一个数据块,数据块大概巨细不一样,但TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流
    https://i-blog.csdnimg.cn/blog_migrate/5a0a06f213a90cfa98736695bb8d2b85.png    发送方发送文件时会把文件按照字节排序编号并放入TCP缓存,再取几个字节加上TCP头形成TCP报文段再放到链路上传输
[*] 传输单位是报文段。
 
2)TCP报文段首部格式

https://i-blog.csdnimg.cn/blog_migrate/f41a230615b8695780ccb4acf867b758.png
   https://i-blog.csdnimg.cn/blog_migrate/fa8e26f1e1bfca4ce448d2dc4083214a.png以上图为例发送”123“报文段时,该报文段首部序号字段填1

https://i-blog.csdnimg.cn/blog_migrate/0d4f1ea13da4d17d7d077fdf4de7d6b3.png吸收端已经收到了”123“报文段就会给发送端发送首部确认号字段为4的报文段

由数据偏移字段可知首部最大为60B


https://i-blog.csdnimg.cn/blog_migrate/aba050becd09ebbe7c864762a6f02db7.png
   将RST置为1还可以用来拒绝一个非法报文段,大概拒绝打开一个链接


https://i-blog.csdnimg.cn/blog_migrate/6395738be74dd70225538b8fb19daf3a.png
   发送方根据吸收方报文的窗口字段设置发送窗口巨细

查验时加上的伪首部的第四个字段其实就是协议字段,在UDP当中是17,而在TCP当中应该是6

告急指针指出告急数据的末位在报文段当中的位置。如告急指针值为50,则TCP数据部分的前50个字节均为告急数据,剩下的为普通数据
https://i-blog.csdnimg.cn/blog_migrate/8fdccdfa30c1ad5c573f70eda81eb2b3.png
MSS指的是每一个TCP报文段当中数据字段的最大长度
填充字段保证首部是4B整数倍,通常填充全0字段
2.TCP连接管理

1)TCP连接管理

TCP连接传输分为三个阶段:
https://i-blog.csdnimg.cn/blog_migrate/932adaff5ac2f9edd07fdc17a67c35cd.png
TCP连接的建立接纳客户服务器方式,主动发起连接建立的应用进程叫做客户,而被动等待连接建立的应用进程叫服务器。
2)TCP的连接建立

注意:!!!!!!!!!!!!!!!!!!!!!!!!!!!!:
https://i-blog.csdnimg.cn/blog_migrate/81c3e5a814efa9893b38cf6131233930.png
   Round1 ACK=0,ack无效,同步序列编号SYN=1,生成初始序列好seq=x。
Round2 由于连接哀求报文段没有数据部分,ack=x+1(体现希望下次吸收到的序列号seq=x+1),同时确认号ACK=1,SYN=1,生成服务器的序列号seq=y。
Round3 SYN只在哀求连接和连接担当时置1,所以SYN=0,同时对应seq=x+1,ack=y+1。此阶段可以携带数据!!
又叫三次握手。 
3)SYN洪泛攻击

https://i-blog.csdnimg.cn/blog_migrate/48570f25f4093d7379782ea34e32fb63.png
   办理方案:SYN cookie
4)TCP的连接释放

https://i-blog.csdnimg.cn/blog_migrate/11940257178e555680ee262bba6cfae1.png
   Round1 由于TCP为全双工,此客户端也有大概为之前的服务端。由于连接释放报文段通常没有数据,所以序号u也可以标识报文段(seq=u),同时停止位FIN=1。
Round2 服务器端回一个确认报文段,ACK=1,seq=v,ack=u+1。此时服务器端仍可以发送数据。
Round3 当服务器发送完数据,就释放报文段,主动关闭TCP连接。FIN=1,ACK=1,seq=w,ack=u+1。
Round4 如果客户端发送的确认报文段没有到达服务器端,服务器端会重传连接释放报文段,客户端在2MSL内收到就会重传确认报文段并重新启动2MSL计时器。如果客户端不等待2MSL的时间而是在发送完确认报文段后直接释放连接,报文段丢失时客户端就无法吸收服务器端重传的连接释放报文段,服务器端会一直发连接释放报文段而无法正常关闭。ACK=1,seq=u+1,ack=w+1
又称四次挥手。 
3.TCP可靠传输

TCP可靠传输

https://i-blog.csdnimg.cn/blog_migrate/66d4e5ce7e6bec4420b6dece1cec2372.png
1)序号

TCP的首部的序号字段。TCP协议面向字节流,因此TCP传输时以字节为单位,对字节依次编号。实际发送会把多个字节放在一起组成报文段发送,报文段巨细不定,取决于链路层MTU。
   对于文件大概要发送的数据,第一个字节的序号可以是随机的
https://i-blog.csdnimg.cn/blog_migrate/79857c38fd087ccc84549ead869660a6.png
2)确认

https://i-blog.csdnimg.cn/blog_migrate/a4e89d109097b81d8f042e6bdb72cc5d.png
TCP首部的确认号是期望吸收到对方下一个报文的数据的第一个字节的序号。(ACK)
发送方在收到对发送报文段的确认之前,TCP缓存区应保留报文段。
   吸收方此时收到了“123”报文段,就会发送一个首部确认号字段为4的确认报文段,在发送方收到后把TCP缓存中的“123”报文段删去
吸收方可在合适时候发送确认报文段,也可在要发送数据时把确认信息捎带上,即捎带确认
吸收方接纳累积确认,只确认数据流当中至第一个丢失字节为止的字节
   假如发送端此时发送了“456”和“78”两个报文段,但吸收端只吸收到了“78”报文段,吸收端还是会一直发送确认号为4的报文段。在收到确认号为4的报文后,发送端会重传”456“报文段。在吸收端收到”456“报文段后,下次发送的确认号应为9。
3)重传

https://i-blog.csdnimg.cn/blog_migrate/418bdbbf69de2f7c52a9b2182e3135be.png

https://i-blog.csdnimg.cn/blog_migrate/c049a63f2af5b559081c9a82eaa31855.png


   TCP协议也有发送窗口和吸收窗口的概念,在发送过程中会利用GBN协议和SR协议,利用时同链路层讲过的大同小异
4.TCP流量控制

1)TCP流量控制

https://i-blog.csdnimg.cn/blog_migrate/9a7ab1ee592081331f05ea2e54a14b32.png
希望对方发送不要过快。利用滑动窗口机制。要求发送方有个吸收窗口rwnd。
https://i-blog.csdnimg.cn/blog_migrate/72749a47a46b35b84cbcfb7d548b3eb0.png
5.TCP拥塞控制

1)TCP拥塞控制

https://i-blog.csdnimg.cn/blog_migrate/a90c3b7a2e6defdb683a6ed2f9b5cbd6.png
   拥塞控制是全局性题目,吸收方并不知道拥塞环境具体是哪几台主机发送数据过多造成的。而流量控制是点到点之间的题目,吸收方知道找哪个发送方。
拥塞控制四种算法
https://i-blog.csdnimg.cn/blog_migrate/dee0725e4269a8fff38b5bdb2552f6af.png
2)慢开始和拥塞制止

注意!!!!!!!!!!!!!!!!!!!!:
https://i-blog.csdnimg.cn/blog_migrate/2919caf8850479466ceee93a20cf2503.png
   cwnd=n体现为n个报文段,长度都为MSS
    慢开始cwnd翻倍在收到之前发送报文的确认后立即发生
起首慢开始,拥塞窗口指数增长 ,当到慢开始门限ssthresh时,此时变为拥塞制止,拥塞窗口为线性增长,当出现网络超时,将ssthresh变为网络拥塞时拥塞窗口的一半,重新执行慢开始,直至遇到新的门限值,在拥塞制止。
3)快重传和快恢复

https://i-blog.csdnimg.cn/blog_migrate/b12a1729e35529bcfac410d34a5d29cb.png
快恢复:发送方尽快的进行重传,而不等超时计时器超时在重传。要求吸收方不要等待自己发送数据时才进行捎带确认,而是立即发哦是那个确认。
起首还是慢开始和拥塞制止,当网络拥塞时,发送方吸收到三个重复的确认执行快重传,接着将拥塞窗口变为一半,执行快恢复。 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 计算机网络第五章--传输层