TCP笔记

HCIA复习

OSI七层参考模型

应用层:人机交互的接口

表示层:进行格式的统一

会话层:提供网络服务中端到端的连接会话

传输层:TCP/UDP,用以标定和区分不同应用层程序

网络层:IP,ARP,ICMP

数据链路层:根据二进制生成电信号;MAC地址

物理层*

ARP协议:地址解析协议(网络层)

目的:通过一种地址获取到另一种地址信息。

正向ARP:通过已知的IP地址获取目标的Mac地址;存在ARP缓存表。老化时间---180s

方向ARP

DHCP协议---动态主机配置协议

C/S架构

广播包   Discover报文

单播包   offer报文(携带即将分配给pc的IP地址)

广播包   request报文(携带即将申请的IP地址)

原IP:0.0.0.0;,目IP:255.255.255.255;目Mac:全F

交换机转发原理:

  1. 自学习:根据数据帧中的源Mac地址以及接受该数据帧的接口,生成对应关系,并记录在本地Mac地址表中
  2. 查表转发:根据数据帧中的目的Mac地址,查找本地Mac地址表,若存在记录,泽单播转发,若不存在,则洪泛交换机洪泛的机制
  3. 遇到广播数据帧或组播数据帧(01-00-5e-xx-xx-xx)

DNS服务—域名解析服务

基于UDP/TCP的53号端口机械数据传输

UDP一般用于客户端与服务端的查询和相应,tcp用于主从服务端之间的数据传输。

DNS的查询过程分为两种方式:递归查询,迭代查询

TCP传输控制协议

是一种面向连接的、可靠的、基于字节流的传输层协议

特点:
TCP协议的特点:

1.面向虚连接的传输层协议

2.每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的;

3.可靠,有序,无丢失,不重复

4.TCP提供全双工通信

发送缓冲

应用程序发送给发送方TCP准备发送的数据

TCP已发送但是尚未收到确认的数据

接收缓存

 按序到达但尚未被应用程序处理的数据

 按序到达的数据

TCP是面向字节流的

TCP连接的四元组:源IP,源端口,目IP,目端口

确认序列号:

1.该确认序列号表示接收方期望收到发送方发送的下一个字节的序号

2.代表接收方已收到该确认序列号之前的所有字节

窗口值:指发送方可以不需要接收确认报文就可以连续发送的数据最大量

选项字段:MSS,时间戳,选择确认机制,窗口因子

TCP的确认机制被称为累积确认

Seq:序号

确认ACK(acknowledgement):当ACK=1时,确认序列号字段有意义

同步SYNSynchronization):代表连接请求

终止位FIN(finish):表明此报文段发送方数据已全部发送完毕,要求释放连接

复活位RST:表明TCP连接出现严重错误,必须释放连接,并重新建立新的传输连接

紧急位URG:URG=1时,表明此报文中存在紧急处理的数据,是高优先级数据,应尽快交付应用程序处理。与紧急指针配合使用

推送位PSH:接收方尽快交付接收应用进程,不再等待缓冲区填满在向上交付

TCP的可靠性机制

排序机制

MTU:最大传输单元——包含数据部分,传输层头部,网络层头部——以太网当中默认值为1500字节

MSS:最大段长度——仅包含数据部分

在本地设备上,如果进行了分段操作,则无法进行分片操作

确认机制

重传机制

RTT:往返时间,指的是发送方将数据发出后,到他接收到对端反馈的确认报文的完整时间段

RT0:超时重传时间:略大于RTT时间

RT0时间是动态变化的时间,会进行超时间隔时间加倍

超时重传——快速重传机制

客户端通过服务端的反馈信息从而就行数据重传的方式被称为快速重传机制,此时的重传并非因为RTO时间到达而除非,而是因为客户端连续接收到3个冗余ACK报文——快速重传机制会在RTO定时器超时之前重传报文段,从而解决超时重传时间加倍导致的延迟增大问题

为了加快重传效率,将累积确认机制修改为SACK机制(选择确认机制),在TCP首部中的选项内容中携带未收到的数据字段,从而引发客户端重传

TCP流量控制机制

窗口:指发送方可以在不接收确认报文的前提下,一次性发送的数据最大量

接收方会在连接建立之前创建一个接收缓存,用以存放发送方发送的数据,而窗口大小在最初等于接收缓存大小。之后,窗口大小等于缓存大小减去已存在缓存中的数据量(rwnd—接收窗口大小)

发送方根据每一次接收到的确认报文中的窗口字段,及时调整发送缓存大小,确保发送缓存用于小于等于窗口值。

TCP的三次握手(不是三次会导致连接资源的浪费)

TCP 是面向连接的协议,所以使用 TCP 前必须先建立连接,而建立连接是通过三次握手而进行的。

1.一开始,客户端和服务端都处于 CLOSED 状态。先是服务端主动监听某个端口,处于 LISTEN 状态

客户端会随机初始化序号(client_isn),将此序号置于 TCP 首部的「序号」字段中,同时把 SYN 标志位置为 1 ,表示 SYN 报文。接着把第一个 SYN 报文发送给服务端,表示向服务端发起连接,该报文不包含应用层数据,之后客户端处于 SYN-SENT 状态。

2.服务端收到客户端的 SYN 报文后,首先服务端也随机初始化自己的序号(server_isn),将此序号填入 TCP 首部的「序号」字段中,其次把 TCP 首部的「确认应答号」字段填入 client_isn + 1, 接着把 SYN 和 ACK 标志位置为 1。最后把该报文发给客户端,该报文也不包含应用层数据,之后服务端处于 SYN-RCVD 状态。

3.客户端收到服务端报文后,还要向服务端回应最后一个应答报文,首先该应答报文 TCP 首部 ACK 标志位置为 1 ,其次「确认应答号」字段填入 server_isn + 1 ,最后把报文发送给服务端,这次报文可以携带客户到服务器的数据,之后客户端处于 ESTABLISHED 状态。第三次握手是可以携带数据的,前两次握手是不可以携带数据的。

TCP的四次挥手(不是四次会导致重发)

TCP 断开连接是通过四次挥手方式。

TCP连接的建立

TCP建立连接的前置条件或需要解决的问题:

        1. 每一端知晓对端的套接字
        2. 就行参数协商(MSS,窗口值,是否使用选择确认机制,窗口扩大因子,时间戳)
        3. 设备对资源进行分配

TCP存在一个保活计时器,该计时器2小时时间。若该计时器时间内没有收到任何客户端的数据,服务端会发送一个探测报文段,并每隔75秒发送一次。若连续发送10个探测报文仍没有反应,则服务器认为客户端出现故障,关闭连接。

TCP连接的释放:

              1. 是为了释放在之前分配给TCP进程的资源
              2. 本地所有数据已传输完毕
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值