计算机网络必看之·你确定了解传输层吗?

本文详细介绍了传输层的功能,包括端到端通信、复用分用、差错检测以及TCP与UDP两大传输协议的特性。重点阐述了TCP的连接管理(三次握手、四次挥手)、可靠传输机制(序号、确认、超时重传、冗余ACK)以及流量控制和拥塞控制策略。同时,讨论了UDP的无连接特性、优缺点及其校验方法,展示了两者在不同场景下的应用选择。
摘要由CSDN通过智能技术生成

🌕写在前面


  • 🍊博客主页:kikoking的江湖背景
  • 🎉欢迎关注🔎点赞👍收藏⭐️留言📝
  • 🌟本文由 kikokingzz 原创,CSDN首发!
  • 📆首发时间:🌹2021年12月12日🌹
  • 🆕最新更新时间:🎄2021年12月12日🎄
  • ✉️坚持和努力一定能换来诗与远方!
  • 🙏作者水平很有限,如果发现错误,请留言轰炸哦!万分感谢感谢感谢!



目录

🔥1.传输层的功能

🍊1·传输层提供进程间的逻辑通信(即端到端通信)

🍊2·复用分用

🌟1.什么是复用分用?

🌟2.如何实现多路分用?

🌟3.无连接的多路复用与分解

🌟4.面向连接的多路复用与分解

🌟5.套接字与线程

🌟6.HTTP与套接字的关系

🍊3·差错检测

🍊4·提供两种不同的传输协议

🔥2.传输层的寻址与端口

🍊2.1 端口的作用

🍊2.2 端口号

🍊2.3 套接字

🔥3.UDP协议

🍊3.1 UDP的概念

🍊3.2 UDP的优点

🍊3.3 UDP的首部格式

🍊3.4 UDP校验

🌟伪首部的特点

🌟UDP校验方法

🔥4.TCP协议

🍊4.1 TCP协议的特点

🍓发送缓存

🍓接收缓存

🍊4.2 TCP报文段

📜习题检测

🍊4.3 TCP连接管理

🍓TCP连接建立·三次握手

🍓TCP连接的释放·4次握手

🍊4.4 TCP可靠传输

🍓序号机制

🍓确认机制

🍓超时重传

🍓冗余ACK重传

🍊4.5 TCP流量控制

🍓1.流量控制的功能

🍓2.如何实现流量控制

🍓接收窗口rwnd

🍓拥塞窗口cwnd

🍊4.6 TCP拥塞控制

🔥5.如何维护拥塞窗口呢?

🍊5.1 慢开始和拥塞避免

🍓1 慢开始算法

🍓2 拥塞避免算法

🍓3 网络拥塞的处理

🍊2.快重传和快恢复

🍓2.1快重传

🍓2.2快恢复


🔥1.传输层的功能


🍊1·传输层提供进程间的逻辑通信(即端到端通信)

·网络层:提供的是主机之间的通信

逻辑通信:传输层之间的通信好像是沿水平方向传送数据,但事实上这两个传输层之间并没有一条水平方向的物理连接;具体来说传输层向高层用户屏蔽了低层网络核心的细节(例如网络拓扑、路由协议),使应用进程看见的好像是在两个传输层实体之间有一条端到端的逻辑通信信道。

🍊2·复用分用

🌟1.什么是复用分用?

A1:我们举一个通俗的写信例子,考虑有两家人,一家住在城南,一家住在城东,每家都有20多个孩子,他们互相写信,城南的家庭的所有信件由 kikoking 负责收发,城东的家庭的所有信件收发由 mrlx 进行,他们负责收集家里的信件然后交付给邮政服务传送。

在上述这个例子中 kikoing mrlx 就好比是Socket,邮政服务为两个家庭提供逻辑通信,看似信件是由两家人互相寄出的,而其实是通过邮政服务(传输层以下的服务)传递的。

其中每一个孩子通过他们的姓名来标识,当kikoking收到邮政服务的信件后,通过查看收件人名字而将信件亲手交付给他的兄弟姐妹,这执行的是多路分解操作

当mrlx从兄弟姐妹那收集信件,并将它们交给邮递员时,他执行的是多路复用操作


🌟2.如何实现多路分用?


🌟3.无连接的多路复用与分解

当报文段从主机A和主机B到达主机C时,主机C的传输层检查报文段中的目的端口号(6428),并将其定向到相应的套接字(6428),然后报文段中的数据通过套接字进入其所连接的进程


🌟4.面向连接的多路复用与分解

如上图,主机主机C向主机B发起了两个HTTP会话,主机A向主机B发起了一个HTTP会话

尽管主机A和主机C的源端口号相同,但是对于服务器B来说依旧能够正确地分解这两个具有相同源端口号的连接,因为这两条连接有不同的源IP地址。


🌟5.套接字与线程

当今高性能的Web服务器通常只使用一个进程,但为每个客户新的连接创造一个新的线程(线程相当于一个轻量级的子进程)


🌟6.HTTP与套接字的关系

如果客户与服务器使用非持续HTTP,则对每一对请求/响应都创建一个新的TCP连接并在随后关闭,因此对每一对请求/响应创建一个新的套接字并在随后关闭。这种套接字的频繁创建和关闭会严重影响一个繁忙的Web服务器的性能。

如果客户使用持续HTTP,则在整条连接持续期间,客户与服务器之间经由同一个服务器套接字交换HTTP报文。


🍊3·差错检测

·传输层对收到的报文(首部和数据部分)进行差错检测

·网络层只检查IP数据报的首部,不检查数据部分是否出错


🍊4·提供两种不同的传输协议

·面向连接的TCP和无连接的UDP;而网络层无法同时实现这两种协议

网络层提供面向连接的服务——虚电路

网络层提供无连接服务——数据报

不可能在网络层同时出现这两种方式!

✨✨✨我是分割线✨✨✨

🔥2.传输层的寻址与端口


🍊2.1 端口的作用

1.是传输层的服务访问点

2.能够让应用层的各种应用进程将其数据通过端口向下交付给传输层,以及让传输层知道应当将其报文段中的数据通过端口交付给应用层相应的进程

3.是软件端口——应用层的各种协议进程与传输实体进行层间交互的一种地址

对比·硬件端口:不同硬件设备进行交互的接口


🍊2.2 端口号

·应用进程通过端口号进行标识,端口号长度为16bit,能够表示65536个不同的端口号

应用程序 FTP TELNET SMTP DNS TFTP HTTP POP
熟知端口号 21 23 25 53 69 80 110

🍊2.3 套接字

网络中通过IP地址来标识和区分不同的主机,通过端口号来标识和区分一台主机中的不同应用进程,端口号拼接到IP地址即构成套接字Socket在网络中采用发送方和接收方的套接字来识别端点。

套接字Socket=(IP地址:端口号);它唯一标识网络中的一台主机上的一个应用进程

✨✨✨我是分割线✨✨✨

🔥3.UDP协议


评论 61
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kikokingzz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值