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