TCP、UDP 原理 TCP三次握手四次挥手详细解说

tcp、udp工作原理 tcp三次握手四次挥手
tcp/ip是传输层协议
tcp常用端口号:
ftp(文件传输协议) 21(用于连接) 20(用于传输数据)
http(超文件传输协议) 80
telnet(远程登录) 23
smtp(简单邮件传输协议)25
端口号用来区分不同的网络服务
tcp(传输控制协议)udp(用户数据包协议)
tcp使用端到端传输 使用全双工传输模式 使用了确认技术来确保目的设备收到从源端发来的数据并且是准确无误的 (安全性 可靠性 数据完整性)
确认技术目的端收到源端发送的数据时 会向源端发送确认报文 源端收到确认报文后继续发送数据 如此重复
UDP是一种面向无连接的传输层协议 传输可靠性没有保证 发送数据时无需建立连接(可靠性不高 传输速度快)
tcp是一种面向连接的传输层协议,提供可靠的传输服务
TCP位于TCP/IP模型的传输层 它是一种端到端的协议TCP作为传输控制协议可为主机提供可靠的数据传输
tcp允许一个主机同时运行多个应用进程 每个主机可以拥有多个应用端口 每对端口号、源和目标ip的组合唯一的标识了一个会话 端口分为知名端口和动态端口(范围从1024-65535)一般应用于不固定服务也就是说许多服务都可以使用 只要运行的程序向系统提出访问申请 那么系统就可以分配一个供该程序使用
tcp通常使用ip作为网络层协议 这是tcp数据段被封装在ip数据包内
tcp由tcp 头部和tcp数据组成最多可以有60个字节的头部 如果没有options字段 正常为20字节
16位源端口号、16位目的端口号、32位序列号(用于发送端)32位确认序列号(用于接收端)、4位头部字段(表示头部占32bit 最大长度为60字节)、16位窗口大小、16位校验和

TCP三次握手

主机A发送一个标识为syn的数据段 表示期望与服务器连接 此数据段的序列号为a
服务器回复一个syn+ack确认报文 序列号为b 确认序列号为主机A序列号+1 作为对主机A的syn报文确认
主机A发送一个ack确认报文序列号为a+1 确认序列号为b+1 作为对服务器A的syn报文确认

tcp流量控制

通过改变窗口大小来对数据传输进行流量控制

tcp四次挥手

tcp支持全双工传输数据 tcp三次握手实际上是两个方向的链接 所以传输完毕之后 两个方向必须都关闭
主机A想要终止链接 发送一个fin ack 的数据段 序列号为a 确认序列号为b
服务器A回应一个ack数据段 序列号为b 确认序列号为a+1 作为对主机A FIN报文确认
服务器A想要终止链接 发送一个fin ack 数据段 序列号为b 确认序列号为a+1
主机A回应ack报文 序列号为a+1 确认序列号为b+1 作为对服务器A的FIN报文确认

UDP头部仅占8字节 传输没有确认机制
分为udp报文头和udp数据 报文头由源端口 目的端口 报文长度以及校验和组成 适用于实时数据传输 比tcp效率高 开销小 单数据没有可靠性
udp头部表示为
16位源端口号、16位目的端口号、16位upd长度(头部和数据的长度 最小为8字节)、16位UDP校验和
如有错误请联系指教

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值