计算机网络概念多,记不住,抓不住重点是因为你不会总结,进来看看,看不懂,看不会过来打我
前文推荐
学计算机网络之前了解这些,学习效率不提升过来打我
计算机网络物理层第一章物理层详解
吐血码万字长文搞懂了数据链路层
计算机网络的网络层,真就一看就懂?
只有主机才有的层次
在协议栈中传输层的作用 |
---|
传输层的功能:
传输层有两个好兄弟
大哥TCP和二弟UDP
大哥靠谱,二弟不靠谱
传送数据之前必须建立连接,数据传送结束后要释放连接.不提供广播或多播服务.由于TCP要提供科奥的面向连接的传输服务,因此不可避免增加了许多开销:确认.流量控制,计时器以及连接管理等
可靠,面向连接,时延大,适用于大文件
传送数据之前不需要建立连接,收到UDP报文后也不需要给出任何确认
不可靠,无连接,时延小,适用于小文件
复用:应用层所有的应用进程都可以通过传输层再传输到网络层
分用:传输层从网络层收到数据后交付指明的应用进程
**端口:**是传输层的SAP,标识主机中的应用进程(每一个进程都有一个唯一的标识端口)
端口号分分类 |
---|
常见熟知端口号 |
---|
在网络中采用发送方盒接收方的套接字组合来识别端点,套接字唯一标识了网络中的一个主机和它上面的一个进程.
套 接 字 S c o k e t = ( 主 机 I P 地 址 , 端 口 号 ) 套接字Scoket = (主机IP地址,端口号) 套接字Scoket=(主机IP地址,端口号)
UDP只在IP数据报服务之上添加了很少功能,即复用分用和差错检测功能
UDP协议的传输 |
---|
UDP首部格式 |
---|
数据格式 |
---|
UDP校验过程 |
---|
可靠有序,不丢不重
TCP协议数据的传输过程 |
---|
TCP报文段首部格式及格式解析1 |
---|
TCP报文段首部格式及格式解析2 |
---|
TCP报文首部格式以及格式解析3 |
---|
TCP连接传输三个阶段:
TCP连接的建立采用客户端服务器式
主动发起连接建立的应用进程叫做客户,而被动等待连接建立的应用进程叫服务器.
假设运行在一台主机(客户)上的一个进程想与另一台主机(服务器)上的一个进程建立一条连接,客户应用进程首先通知客户TCP,他想建立一个与服务器上某个进程之间的连接,客户中的TCP会用一下步骤与服务器中的TCP建立一条TCP连接
TCP连接的过程-三次握手 |
---|
什么叫洪泛攻击 |
---|
参与一条TCP连接的两个进程中的任何一个都能终止该连接,连接结束后,主机中的"资源"(缓存和变量)将被释放.
TCP连接释放-四次挥手 |
---|
TCP可靠传输 |
---|
TCP实现可靠传输的机制
其中校验和UDP校验是完全一样的,增加伪首部,然后用二进制反码补码的方式判断有没有发生错误
序号 |
---|
确认机制-过程1-发送方发送报文段给接收方,接收方发送确认报文段给发送方 |
---|
那么接收方发送了确认报文段给发送方,发送方就知道了接收方已经收到了刚才发送的数据,就会删除在TCP缓存中刚才发送给接收端的报文段
发送方删除在TCP缓存中刚才发送给接收端的报文段 |
---|
然后我们假设发送方发送了(4,5,6)和(7,8)两个报文段,但是(4,5,6)报文段可能由于路由选择,网络情况不好等问题没有成功发送给接收方
发送方发送(4,5,6)和(7,8)两个报文段,假设只成功发送(7,8) |
---|
那么这时接收方是如何使用确认机制来实现可靠传输呢?
使用累计确认实现可靠传输 |
---|
超时重传
那么在我们使用这种RTTs(加权平均往返时间)进行重传时间的设定时,可能会导致等待的时间过久
于是通过冗余ACK(冗余确认)
:我们期望能提前知道数据(报文段)是否丢失
每当比期望序号打的时序报文段到达时,发送一个冗余ACK,指明下一个期待字节的序号
发送方已发送1,2,3,4,5报文段
接收方收到1,返回给1的确认(确认号2的第一个字节)
接收方收到3,仍回给1的确认(确认号2的第一个字节)
接收方收到4,仍回给1的确认(确认号2的第一个字节)
接收方收到5,仍回给1的确认(确认号2的第一个字节)
发送方收到3个对于报文段1的冗余ACK----->认为2报文段丢失,重传2号报文段
快速重传
流量控制:让发送方慢点,要让接收方来得及接收
TCP利用滑动窗口机制实现流量控制
在通信过程中,接收方根据自己接收缓存的大小,动态地调整发送方的发送窗口大小,即接收窗口rwnd(接收方设置确认报文段的窗口字段来将rwnd通知给发送方),发送方的发送窗口取接收窗口rwnd和拥塞窗口cwnd的最小值.
一个案例看TCP传输过程和流量控制
TCP传输过程和流量控制 |
---|
出现拥塞的条件:
对于资源需求的总和>可用资源
这里的资源指的是:链路的容量(带宽)等,很多人都在链路上传输数据,那么链路上的可用空间就很少
网络中有许多资源同时是呈现供应不足---->网络性能变坏----->网络吞吐量将随输入负荷增大而增大
拥塞控制:
防止过多的数据注入带网络.(是一个全局性的控制)
这里就会发现流量控制和拥塞控制都是使发放方发送少量的数据,那么它们两者有什么区别*
用图形象化表示拥塞控制和流量控制 |
---|
在拥塞控制(左图):
流量控制(右图):
拥塞控制四种算法
研究这几个算法,为了研究方便我们假定一些事实:
- 数据单方向传送,而另一方向只传送确认(不是捎带确认方式)
- 接收方总是有足够大的缓存空间,因而发送窗口大小取决于拥塞控制(忽略了流量控制)
- 发送窗口=Min{接口窗口rwnd,拥塞窗口cwnd}
慢开始和拥塞避免 |
---|
快重传和快恢复 |
---|
个),然后开始指数规律增长直到达到新的门限值(新的门限值在网络拥塞时确定,就是上一个网络拥塞时传输的最大报文段数量的一半),然后加法增长…
快重传和快恢复 |
---|
我是雷雨佳,一个
普本科
的学生,主要专注于Java后端和大数据开发,如果这篇文章有帮助到你,希望你给我一个大大的赞
,如果有什么问题,希望你能留言
和我一起研究
,学习靠自觉,分享靠自愿