TCP总结

OSI七层参考模型

上三层-----控制层面

应用层------接收用户数据,人机交互的接口,将自然语言--->编码

表示层------将逻辑语言转换为机器语言

会话层-----针对传输的每一种数据建立一条连接(防止数据间相互干扰)

下四层-----数据层面

传输层-----区分流量,定义数据传输方式

网络层-----通过IP地址进行逻辑寻址

数据链路层-----介质访问控制--MAC;逻辑链路控制层---LLC

物理层----定义一些物理特性,传播比特流

ARP协议----地址解析协议

正向ARP:根据已知的目标IP地址获取目标MAC地址
    ARP缓存表--->通过ARP协议获取到的信息为动态信息。180S
反向ARP:根据已知的目标MAC地址获取目标IP地址
免费ARP:1.自我介绍;2.地址的冲突检测;一般是在DHCP获取到IP地址后使用。

TCP协议-----一种面向连接的可靠性协议

++可靠、有序、无丢失和无重复++

确认机制:传输确认,每接收到一个数据段,都需要进行一次确认

重传机制:超时重传,当一个数据段中的某个包丢失,会提示要求重新传输这个报文

**排序机制:**传输一个报文,可能会被分为多个数据包,并从不同路径传输,最终到达目的地的顺序会被打乱,需要进行重新排序。依靠TCP的序号字段

流控机制(滑动窗口机制):通过调节窗口大小来对流量进行控制。

窗口大小:指无需等待确认就可以连续发送的数据的最大量。

TCP是提供全双工通讯

  • 发送缓存
    • 想要发送的应用层数据
    • 已经发送但未收到确认的数据
  • 接收缓存
    • 按需到达但还未被应用程序提取的数据
    • 乱序到达的数据

超时重传---快速重传

在快速重传机制中,并不是因为RTO时间到达从而触发重传机制,该重传机制是根据对端的反馈信息进行重传,当连续3三收到相同的ACK报文时,发送端会重传数据。这3个连续的ACK报文被称为冗余ACK。

面向连接

一:三次握手(建立通道)

A给B发信息,需要先建立通道,A给B发送TCP报文,目的是告诉B我想和你建立连接,SYN=1,代表这个报文是请求连接的报文,seq为序列号,每一个TCP报文都有,假设为X,是随机生成的,B给A回复确认报文,有ACK,标志位=1,有Ackeq=x+1,因为没有数据交互所以只+1,不加数据,此时B收到报文后不需要用确认报文回复。此时AB建立单向连接,A可以给B主动发送消息,B不可以给A 发送消息,但是数据收发是一个双向过程,B给A发送一个请求报文,SYN=1 seq=y(序列号),此时序列号与B的确认报文相同,序列号相同,是因为B认为A 没有发送报文的原因是数据丢失。A同意建立连接,发送报文,ACK=1(标志位) Ackeq=y+1(确认序列号),seq=x+1,建立双向连接。

二:四次挥手(删除通道)

数据交互完毕,A给B发送消息,表示我要断开连接。此时标记位FIN=1,seq=u(不是随机数),B回复确认,此时ACK=1,Ackeq=u+1,seq=v,此时对于A连接断开,B给A 发送报文,FIN=1,seq=w(不是随机),Ackeq=u+1,(确认序列号),再次发送这两个参数是为了防止上次发送时丢失,A给B发送确认报文ACK=1,Ackeq=w+1,序列号seq=u+1,由上个确认序列号决定。此时双向连接断开。u和w根据传输的数值决定

相关推荐
brhhh_sehe5 分钟前
重生之我在异世界学编程之C语言:深入文件操作篇(下)
android·c语言·网络
忆源9 分钟前
Linux高级--2.4.2 linux TCP 系列操作函数 -- 深层理解
linux·网络·tcp/ip
哈利巴多先生20 分钟前
HTTP,续~
网络·网络协议·http
白了个白i22 分钟前
http的访问过程或者访问页面会发生什么
网络·网络协议·http
赛德乌漆麻黑哟1 小时前
FOFA--网络空间资产搜索引擎(常用语法以及拓展)
网络·安全·搜索引擎
Allen_LVyingbo1 小时前
数智化时代医院临床试验人才培养的创新路径与实践探索
网络·健康医疗·集成学习
qq_372006861 小时前
浏览器http缓存问题
网络协议·http·缓存
手心里的白日梦1 小时前
TCP协议
服务器·网络·tcp/ip
Hacker_Oldv2 小时前
iptables网络安全服务详细使用
网络·安全·web安全
云计算DevOps-韩老师2 小时前
【网络云计算】2024第52周-每日【2024/12/25】小测-理论&实操-自己构造场景,写5个系统管理的脚本-解析
开发语言·网络·云计算·bash·perl