网络/协议:TCP笔记
2019-04-19 15:56:03 0 举报
AI智能生成
TCP/IP笔记
作者其他创作
大纲/内容
OSI 七层模型
应用层
HTTP(超文本传送协议)
FTP(文件传输协议)
Telnet(Internet远程登录服务的标准协议和主要方式)
SSH (安全外壳协议)
SSH隧道:内网穿透
SNMP(简单网络管理协议)
DHCP(动态主机分配协议)
DNS (域名解析)
表示层
SSL/TLS
处于传输层和应用层之间
会话层
SSL/TLS
处于传输层和应用层之间
传输层
数据的单位称为数据段(segment)
TCP(传输控制协议)
UDP(用户数据报协议)
网络层
数据的单位称为数据包(packet)
IP(网络之间互联的协议)
ICMP(Internet控制报文协议)
ARP (地址解析协议)
数据链路层
数据的单位称为帧(frame)
以太网
物理层
网络电缆、Wi-Fi(IEEE 802.11)
网络术语
NiC
网络信息中心
管理顶级域
ISP
互联网服务提供商(Internet Service Provider)
向广大用户综合提供互联网接入业务、信息业务和增值业务的电信运营商
ICP
互联网内容提供商(Internet Content Provider)
向广大用户综合提供互联网信息业务和增值业务的电信运营商
NAT/NAPT
网络地址转换
(Network Address Translation)
网络地址端口转换
(Network Address Port Translation)
(Network Address Translation)
网络地址端口转换
(Network Address Port Translation)
RFC 1631
实现方式
静态转换(Static Nat)
缺点:同一个公网的IP地址,只能由一台私有IP地址的计算机使用
动态转换(Dynamic Nat)
缺点:同一个公网的IP地址,某个时间只能由一台私有IP地址的计算机使用
端口多路复用(OverLoad)
NAPT 网络地址端口转换
(Network Address Port Translation)
NAPT 网络地址端口转换
(Network Address Port Translation)
通信仅限TCP或UDP
优点:NAPT实现了多台私有IP地址的计算机可以同时通过一个公网IP地址来访问Internet的功能
NAT Traversal
NAT 穿透技术
TCP MSS
最大分节大小(maximum segment size)
它通知对端它能接受的每个TCP分节中的最大数据量
如果MSS大于MTU,那么IP报文会分片
一般以太网MTU都为1500, 所以在以太网中, 往往TCP MSS为1460
TCP MSL
最大分节生命期(maximum segment lifetime)
IP数据包能在互联网中生存的最长时间
MTU
最大传输单元(maximum transmission unit))
这个值由硬件规定,也就是说不同的网络MTU不同
IPv4要求的最小链路MTU是68字节
IPv6要求的最小链路MTU为1280字节
两个主机间的路径上的最小MTU称为路径MTU
如果IP数据报大于MTU值,会进行分片
IP数据报的分片与重组是在网络层进完成的
Socket
套接字
流式套接字(SOCK_STREAM)
TCP(The Transmission Control Protocol)
数据报套接字(SOCK_DGRAM)
UDP(User Datagram Protocol)
原始套接字(SOCK_RAW)
pcap库
Pcap4J
IP
IP私有地址
A类地址
10.0.0.0到10.255.255.255
B类地址
172.16.0.0到172.31.255.255
C类地址
192.168.0.0 到 192.168.255.255
TCP
TCP 状态
LISTENING状态
服务器启动后,被监听端口处于侦听(LISTENING)状态
SYN_RECV状态
ESTABLISHED状态
已建立连接。表示两台机器可以通信
SYN_SENT状态
CLOSE_WAIT
对方主动关闭连接或者网络异常导致连接中断
这时我方的状态会变成CLOSE_WAIT 此时我方要调用close()来使得连接正确关闭
TIME_WAIT
我方主动调用close()断开连接,收到对方确认后状态变为TIME_WAIT
TCP 三次握手
第一次
建立连接时,客户端发送syn包(syn=j)到服务器
C: SYN_SENT S:
第二次
服务器收到syn包,必须确认客户的SYN(ack=j+1),
同时自己也发送一个SYN包(syn=k)
同时自己也发送一个SYN包(syn=k)
C: SYN_SENT S: SYN_RECV
第三次
客户端收到服务器的SYN+ACK包,
向服务器发送确认包ACK(ack=k+1)
向服务器发送确认包ACK(ack=k+1)
C: ESTABLISHED S: SYN_RECV
C: ESTABLISHED S: ESTABLISHED
TCP 四次挥手
过程一:主动关闭方发送FIN,被动关闭方收到后发送该FIN的ACK;
过程二:被动关闭方发送FIN,主动关闭方收到后发送该FIN的ACK;
过程三:被动关闭方收到ACK。
过程四:主动关闭方等待MSL时间再释放连接
常见问题
TCP拥塞控制
慢开始与拥塞避免
RTT往返时间
拥塞窗口cwnd(congestion window)
慢开始门限ssthresh
当cwnd<ssthresh时,使用慢开始算法。
当cwnd>ssthresh时,改用拥塞避免算法。
当cwnd=ssthresh时,慢开始与拥塞避免算法任意。
当cwnd>ssthresh时,改用拥塞避免算法。
当cwnd=ssthresh时,慢开始与拥塞避免算法任意。
慢开始算法
拥塞避免算法
快重传和快恢复
路由器随机早期检测RED
路由器尾部丢弃策略
全局同步现象
TIME_WAIT快速回收与重用
TCP是全双工的,全双工和半双工有何区别?
全双工中,为什么关闭连接需要两个方向分别关闭?
SSL/TLS
单向认证
双向认证
TLSV1、 TLSV1.1和TLSV1.2 版本
系统调优
0 条评论
下一页