tcp/ip 协议簇笔记

本文最后更新于:19 天前

tcp/ip 协议簇它是基于tcp/ip协议,但是它并不仅限于tcp/ip 俩种协议,他是一个协议的泛指

它还包括很多其他的协议,同时也分为好多层,同层之间使用相同的协议,这样体现了分层的好处

每一层只是处理自己层的协议

网络体系结构

TCP和UDP是两种最为著名的运输层协议,二者都使用IP作为网络层协议

image-20201204002233544

网络协议群

协议名称 具体协议
应用协议 HTTP,SMTP, FTP,TELNET
传输协议 TCP/UDP
网络协议 IP/ICMP/ARP
路由控制协议 RIP/OSPF/BGP

数据包

  • 包可以说是全能性术语;
  • 帧用于表示数据链路层中包的单位;
  • 数据包是 IP 和 UDP 等网络层以上的分层中包的单位;
  • 段则表示 TCP 数据流中的信息;
  • 消息是指应用协议中数据的单位;

每个层都会对所发送的数据附加一个首部,在这个首部包含了该层的必要信息,在下一层的角度看,从上一层

收到的包全部都被认为是本层的数据

image-20201204002515998

传输层中的 TCP 和 UDP

TCP/IP 中有两个具有代表性的传输层协议,分别是 TCP 和 UDP

TCP 提供一种面向连接的,可靠的字节流服务,流就是指不间断的数据结构

UDP 是不具有可靠性的数据报协议。细微的处理它会交给上层的应用去完成。在 UDP 的情况下

虽然可以确保发送消息的大小,却不能保证消息一定会到达。因此,应用有时会根据自己的需要进行重发处理。

TCP协议机制

  1. 在一个tcp连接中,仅仅有俩方进行彼此通信,应用数据被分割成tcp认为最适合发送的数据块

  2. 当tcp发出一个段后,启动一个定时器,等待目的端确认收到这个报文段,如果不能及时收到一个确认,将重发这个报文段

  3. 当tcp收到发自tcp连接另一端的数据,它将发送一个确认,这个确认不是立即发送,通常推迟几分之一秒 deplayed ack

  4. tcp 将保持它首部和数据的检验和

  5. 既然tcp报文段作为ip数据报来传输,而IP数据报的到达可能会失序,如果有必要,tcp将对收到的数据进行重新排序

  6. 将收到的数据以正确的顺序交给应用层

  7. 基于全双工来进行工作

端口号和通信识别

用于标记进程 范围在0-65535,通过五元组来识别一个通信

  • 知名端口号: 分布在 0~1023 之间

  • 端口号被正式注册:它们分布在 1024~49151 之间,不过这些端口号可用于任何通信用途。

  • Socket: 是由ip和port组合而成

  • 五元组: 源地址,源端口,协议号,目标地址,目标端口

  • MTU: 网络最大传输单元

ip header 首部

  • Version: ip版本号
  • HeaderLength: 首部长度,每四个字节当做一个单位,最大位60
  • TypeofServer(TOS): 确保某些紧急报文可以优先到达,服务类型 (8bits)
  • TotalLength: 报文总长度
  • Identification: 每一个ip包都有一个唯一id,如果IP包被再次拆分 那么被拆分的ip包 id都是一致的
  • Fragment Offset: 偏移量,分片后,片与片之间的 片偏移量
    • MF: 这个片已经分了好多片
    • DF:别分片,说明报文不允许分片
  • TTL: 定义一个生命周期
  • Protocol:标记IP包内层协议类型,TCP 协议号6 ,UDP 的协议号17,ICMP 的协议号1,IGMP 协议号2
  • HeaderChecksum: 首部校验,靠tcp重转

tcp header 首部

image-20201204005815968

  • SequenceNumber: 每次发送报文号码,等待对方进行确认
  • ACknowlegement: 确认报文号码
  • Reserved: 预留位
  • FIN: 结束标记
  • SYN:发送进行同步
  • RST: 重置
  • PSH: 推送
  • ACK: 回复确认报文
  • URG: 不缓冲,尽快发送到内核处理
  • Urgent Pointer:紧急指针 值为1代表URG生效,值为0代表不生效
  • TcpChecksum: tcp的校验码
  • 有限状态机 FSM Finite State Machine

tcp 三次握手四次断开

tcp连接是全双工的,俩个信道,各自断开各自的信道,所以需要四次断开

最后断开会等待2ml时间,一般是120s


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!