传输层

一、常见的进程和监听的端口

1.常见的进程对应的端口号

mysql--3306
ssh--22
telnet--23
dns--53
nginx--80
kafka--9092

2.vim /etc/services 这个文件会记录哪个协议默认使用哪个端口,支持tcp还是udp
3.查看各个端口状态的命令:netstat -anplut
-a all
-n number 数字形式显示
-p 显示程序的名字 program name
LISTEN 监听:打开了某个端口等着别人来访问
ESTABLISHED 建立连接:已经连接成功

[root@xiaoliu ~]# 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      917/sshd            
tcp        0     36 192.168.243.128:22      192.168.243.1:53014     ESTABLISHED 1470/sshd: root [pr 
tcp6       0      0 :::22                   :::*                    LISTEN      917/sshd            
udp        0      0 192.168.243.133:68      192.168.243.254:67      ESTABLISHED 887/NetworkManager 
二、tcp协议

1、定义:

传输控制协议
可靠的、面向连接的协议
传输效率低

2、业务场景: mysql、http、ssh
3、三次握手:确认双方都能通信的

6个标志(控制)位
URG:表示紧急指针(urgent pointer)是否有效。   
ACK:表示确认号是否有效。
PSH:提示接收端应用程序应该立即从TCP接收缓冲区中读走数据,为接收后续数据腾出空间(如果应用程序不将接收到的数据读走,它们就会一直停留在TCP接收缓冲区中)。   
RST  --》reset  重置位:表示要求对方重新建立连接。
SYN  --》sync  同步:第一次请求建立连接
FIN  --》表示通知对方本端要关闭连接了。

tcp封装格式

三次握手流程
4、超时重传计时器:

ack包迟迟未收到,服务器端检测超时,服务器重新发送数据包,SYN+ACK

5、syn+ack包超时会重传多少次

centos系统默认会重传5[root@network ipv4]# pwd
	/proc/sys/net/ipv4
[root@network ipv4]# cat tcp_synack_retries 
	5
修改内核文件,使其重传次数为七次,永久生效
vim /etc/sysctl.conf		#内核参数调优文件
net.ipv4.tcp_sysnack_retries=7
刷新配置文件
sysctl -p
然后查看是否修改成功
sysctl -a

6、服务器启动时初始化两个队列

1.半连接队列(syn queue)
	服务器将该连接状态为syn_recvd的连接信息放到半连接队列
2.全连接队列(accept queue)
	服务器的连接进入establish状态

7、syn flood

1、查看原因:dmesg
2、产生原因:
	由于半连接队列太小或者是遭到ddos攻击
3、解决办法:
    3.1、修改参数,扩大半队列
        /proc/sys/net/ipv4/tcp_max_syn_backlog
        对应net.ipv4.tcp_max_syn_backlog
    3.2、修改参数,启用syncookies
    	/proc/sys/net/ipv4/tcp_syncookies

8、MSS和MTU区别

1. MSS:tcp最大报文长度:传输层一次最大可以传输多少数据,不包括头部字段
2.MTU:最大传输单元:网络层 1500

9、recv -Q 和send -Q

通过netstat和ss看到的值时不一样的
netstat:
其中,接收队列(Recv-Q)和发送队列(Send-Q)需要你特别关注,它们通常应该是 0。
当你发现它们不是 0 时,说明有网络包的堆积发生

10、四次断开
四次断开流程图

三、udp协议

1.定义:

用户数据报协议
不可靠的、无连接的服务
传输效率高

2.业务场景:QQ,dns,dhcp

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐