三次握手,四次断开(传输层---TCP、UDP)

一、tcp与udp的概念

TCP Transmission Control Protocol )----------类似于打电话
传输控制协议
可靠的、面向连接的协议
传输效率低
UDP User Datagram Protocol )----------类似于发短信
用户数据报协议
不可靠的、无连接的服务
传输效率高

 二、TCP封装格式

序列号:给每个发送的数据段进行编号的

确认号:告诉对方哪个数据段之前的数据都收到了

 6个标志位----flag

URG  urgent 紧急
ACK  acknowledgement  确认
PUSH push  通知应用程序尽快处理数据,不要让数据在缓存里停留 --》催
RST  reset 重置,重新连接
SYN  sync 同步,建立连接
FIN  finish 请求断开连接

窗口大小 

滑动窗口的大小,指明本地可接收数据的字节数

窗口 --> window --> 表示本机可以接受多少数据,这个值是可以变化的,主要是告诉对方,防止对方发送过多的数据过来,表示数据处理不了,丢失数据

端口号的范围

端口号的范围:  0~65535   1~65536

三次握手

 

 

netstat 是用来查看网络的状态 --> 开放的网络端口的情况

[root@slave-mysql ~]# netstat -anplut
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      828/sshd            
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      19743/nginx: master 
tcp        0      0 192.168.88.27:22        192.168.88.22:60420     ESTABLISHED 20104/sshd: root [p 

-a  all(所有)
-n  number  以数字的形式显示
-p  program 程序的名字

 [--listening|-l]  监听

 [--tcp|-t]  
 [--udp|-u]

里面的ESTABLISHED指建立连接 --> 3次握手完成就是ESTABLISHED

queue  --》队列

Recv-Q
       Established:  The  count  of bytes not copied by the user program connected to this socket.  
           内核空间里的socket队列里还有多少数据没有被用户空间里的进程复制(取)走
           说明应用程序非常忙,处理不过来了

       Listening: Since Kernel 2.6.18 this column contains the current syn backlog.

Send-Q
       Established: The count of bytes not acknowledged by the remote host. 
       还有多少字节的数据没有被远程主机确认--》发送出去的数据包还没有收到确认

       Listening: Since Kernel 2.6.18 this  column  contains  the
       maximum size of the syn backlog.
 

记录哪些服务使用哪些端口的文件

 /etc/services 

四次断开

客户机和服务器谁先断开连接time wait就在哪一方

 2MSL

msl:最长报文寿命

time-wait比较多,是什么原因?

说明nginx服务器主动大量的断开客户端的连接
    谁发起断开请求,time-wait状态就在哪边
    last-ack是出现在被断开的一方

last-ack 非常多说明出现了什么问题?

说大量的客户端和服务器断开连

TCP流控机制

参考:百度安全验证 

滑动窗口的作用

控制流量

拥塞控制的四种算法

1)慢启动;

2)拥塞避免;

3)拥塞发生(快重传);

4)快速恢复

 TCP差错控制的3种方式

校验和
确认(就是各种计时器)
受损伤的数据段
丢失的数据段
重复的数据段
失序的数据段
确认的丢失
超时

 TCP的计时器

重传计时器        --> 重新发送一次数据,确保数据可以收到
坚持计时器        --> 为了防止零窗口死锁
保活计时器        --> 防止两个TCP之间的连接长时间的空闲
时间等待计时器    --> 连接终止期间使用的
在发送了最后一个ACK后,不立即关闭连接,而是等待一段时间(2MSL),保证能接收到重复的FIN数据段。

进程对应的端口号

nginx : 80
mysql : 3306
ssh  : 22
dns: 53
QQ: 8000
https:443
ftp:21

三、UDP

udp封装格式

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值