TCP基础总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38253837/article/details/80358841

最近在学习计算机网络中的TCP/IP协议,做了写笔记,如下:

  1. ISO七层模型和TCP/IP四层模型以及各层的作用
    ISO模型:物理层、数据链路层、网络层、传输层、 会话层、表示层、应用层
    物理层:定义电气特性、传输比特流、电信号和光信号等(二进制传输)
    数据链路层:将网络层的数据分割成帧,以帧为单位传输数据(访问介质)
    网络层:负责路由选择、交换方式(地址和最佳路径)
    传输层:建立连接,以报文的形式传输数据(端到端的可靠性连接)
    会话层:控制会话的建立、结束,提供会话服务(主机间通信)
    表示层:提供格式化的表示和转换数据服务,如:数据的压缩、加密等(数据表达)
    应用层:提供网络与用户软件之间的借口服务(触及应用程序的网络业务)

    TCP/IP模型:链路层、网络层、传输层、应用层

  2. TCP/IP协议栈为什么是栈
    在数据传输时,先封装的后解封,遵循LIFO,故称其为栈。

  3. 封装、解封装(分用)
    封装:数据从上到下,经过每层时加上该层相应的头部
    解封装:数据从下到上,去掉对应的头部

  4. 端口号:用于区分不同的网络服务。

  5. MTU:以太网和IEEE820.3对数据帧长度的限制称作是最大传输单元(MTU),当IP层的数据报比链路层的MTU大时,IP层就要分片。
    路径MTU:两台通信主机路径中的最小MTU

  6. 以太网帧格式:目的地址+原地址+类型+数据
    数据:IP数据报、ARP、RARP
    MTU:最大传输单元

  7. ICMP协议:用于传递差错信息、时间、回显、网络信息等控制数据。
    例如:ping程序就是将数据封装成ICMP传输。

  8. ARP协议:映射IP地址到MAC地址

  9. ping一台主机(名)的过程:
    DNS域名解析获得IP地址 -> 发送ICMP的ECHO包 -> ARP获得目的主机的MAC地址(广播) -> 网络驱动程序 -> 以太网
    发送ICMP响应 <-

  10. RARP协议:一般用于无盘工作站,无配置文件,启动时向RARP服务器发送RARP请求,获得自己的IP地址。

  11. IP首部长度范围20~60个字节

  12. IP数据报组成:
    版本:IP协议版本号,长度为4位,IPV4此字段值为4,IPV6此字段值为6
    首部长度:以32位的字为单位,该字段长度范围为:4~15位,即IP数据报首部长度的范围为:20~60个字节。
    服务类型(TOS):长度为8位,包含3位的优先权(现已忽略),4位的服务类型(最小延迟、最大吞吐量、最高可靠性、最小费用)和1位保留位(必须置0)
    总长度:长度为16位,以字节为单位,该字段的长度包含IP的头部和数据部分。IP数据报最大可达65535个字节。
    标识:16位标识,用来标识一个IP包,每发送一个此值会加1
    标志与片偏移:3位标志,其中第一位不使用;
    第二位DF(Don’t Fragment)为1时表示不分片;
    第三位MF(More Fragment)为1时表示后面还有更多的片,为0时表示后面没有片了
    IP分片后每一组都有自己的首部,但是片偏移值不同,通过片偏移值接收端可以重新组装IP包
    TTL:数据报最多可以经过的路由器的数量,这种机制可以防止数据报在路由器之间不断循环
    协议类型:表示IP层上承载的是哪个更高级的协议,1:ICMP, 2:IGMP, 6:TCP, 17:UDP
    头部校验和:保证数据的完整性,但校验不包括数据部分。这样做的目的:
    1.所有的数据封装在IP数据包在高层协议中均含有覆盖整个数据的校验和
    2.数据包每经过一个路由器,IP数据包的头部都会发生改变,而数据部分不会发生改变,只对发生改变的头部进行校验可以节约时间
    源IP地址
    目的IP地址
    选项和填充

  13. IP首部校验过程
    在发送数据时,为了计算IP数据包的校验和。应该按如下步骤:
    (1)把IP数据包的校验和字段置为0;
    (2)把首部看成以16位为单位的数字组成,依次进行二进制反码求和;
    (3)把得到的结果存入校验和字段中。
    在接收数据时,计算数据包的校验和相对简单,按如下步骤:
    (1)把首部看成以16位为单位的数字组成,依次进行二进制反码求和,包括校验和字段;
    (2)检查计算出的校验和的结果是否等于零(反码应为16个0);
    (3)如果等于零,说明被整除,校验和正确。否则,校验和就是错误的,协议栈要抛弃这个数据包。

  14. TCP特点:基于字节流(可能产生‘粘包’问题)、面向连接、可靠传输、缓冲传输、全双工、流量控制

  15. TCP报文格式
    源端口号与目的端口号
    序号:表示这个报文段中的第一个数据字节序号
    确认号:当ACk为1时有效
    头部长度
    保留位:6位,必须为0
    6个标志位:
    URG:紧急指针有效
    ACK:确认序号有效
    PSH:接收方应尽快将这个报文段交给应用层
    RST:连接重置
    SYN:同步序号用来发起一个连接
    FIN:表示要终止一个连接
    窗口大小:通过窗口大小来达到流量控制
    校验和:对TCP头与数据进行校验
    紧急指针:是一个正的偏移量,与序号字段中的值相加表示紧急数据最后一个字节的序号
    选项与填充

  16. MSS(最长报文大小)默认是536,因为路由器的一般MTU为576,当MSS为536时加上TCP首部的20再加上IP的首部20等于576,该数据报传输时不需要分片。

  17. TCP连接建立的三次握手

  18. TCP连接终止的四次挥手

  19. TCP如何保证可靠性
    网络传输不可靠的情况:数据出现差错、失序、丢包、重复
    TC保证可靠性的方面:校验和、超时重传+确认机制、重新排序

猜你喜欢

转载自blog.csdn.net/qq_38253837/article/details/80358841