图解TCP&IP
图解TCP/IP
NAT/ NAPT技术: 本地通信时采用私有IP, 与互联网通信时使用该技术转成公有IP
- 起因: 解决IPv4 IP地址不够用
IP隧道技术: 这种在网络层的首部后面继续追加网络层首部的通信方法
- 起因: IPv4和IPv6不兼容
- 扩展应用: IP隧道转发多播消息
Mobile IP: 在主机所连接的子网IP发 生变化时,主机IP地址仍保持不变。
- 起因: 与移动设备进行通信时,所连接的子网一旦发生变化,则无法通过 TCP继续通信。
第3章 数据链路
- MAC地址: Media access control
第6章 TCP与UDP
TCP: 面向有连接, 是一对一可靠性传输
- 校验和
- 序列号
- 确认应答
- 重发控制
- 连接管理
- 窗口控制
以上, 实现了可靠性传输.
三次握手, 四次挥手
三次握手: 验证各自的接收能力和发送能力
第一次握手:客户端给服务端发一个 SYN 报文,并指明客户端的初始化序列号 ISN。此时客户端处于
SYN_SENT状态。首部的同步位SYN=1,初始序号seq=x,SYN=1的报文段不能携带数据,但要消耗掉一个序号。
第二次握手:服务器收到客户端的 SYN 报文之后,会以自己的 SYN 报文作为应答,并且也是指定了自己的初始化序列号 ISN(s)。同时会把客户端的 ISN + 1 作为ACK 的值,表示自己已经收到了客户端的 SYN,此时服务器处于
SYN_RCVD的状态。在确认报文段中SYN=1,ACK=1,确认号ack=x+1,初始序号seq=y。
第三次握手:客户端收到 SYN 报文之后,会发送一个 ACK 报文,当然,也是一样把服务器的 ISN + 1 作为 ACK 的值,表示已经收到了服务端的 SYN 报文,此时客户端处于
ESTABLISHED状态。服务器收到 ACK 报文之后,也处于ESTABLISHED状态,此时,双方已建立起了连接。确认报文段ACK=1,确认号ack=y+1,序号seq=x+1(初始为seq=x,第二个报文段所以要+1),ACK报文段可以携带数据,不携带数据则不消耗序号。
四次挥手:当连接处于半关闭状态时,TCP 是允许单向传输数据的.
- 第一次挥手:客户端发送一个 FIN 报文,报文中会指定一个序列号。此时客户端处于
FIN_WAIT1状态。
即发出连接释放报文段(FIN=1,序号seq=u),并停止再发送数据,主动关闭TCP连接,进入FIN_WAIT1(终止等待1)状态,等待服务端的确认。 - 第二次挥手:服务端收到 FIN 之后,会发送 ACK 报文,且把客户端的序列号值 +1 作为 ACK 报文的序列号值,表明已经收到客户端的报文了,此时服务端处于
CLOSE_WAIT状态。
即服务端收到连接释放报文段后即发出确认报文段(ACK=1,确认号ack=u+1,序号seq=v),服务端进入CLOSE_WAIT(关闭等待)状态,此时的TCP处于半关闭状态,客户端到服务端的连接释放。客户端收到服务端的确认后,进入FIN_WAIT2(终止等待2)状态,等待服务端发出的连接释放报文段。 - 第三次挥手:如果服务端也想断开连接了,和客户端的第一次挥手一样,发给 FIN 报文,且指定一个序列号。此时服务端处于
LAST_ACK的状态。
即服务端没有要向客户端发出的数据,服务端发出连接释放报文段(FIN=1,ACK=1,序号seq=w,确认号ack=u+1),服务端进入LAST_ACK(最后确认)状态,等待客户端的确认。 - 第四次挥手:客户端收到 FIN 之后,一样发送一个 ACK 报文作为应答,且把服务端的序列号值 +1 作为自己 ACK 报文的序列号值,此时客户端处于
TIME_WAIT状态。需要过一阵子以确保服务端收到自己的 ACK 报文之后才会进入 CLOSED 状态,服务端收到 ACK 报文之后,就处于关闭连接了,处于CLOSED状态。
即客户端收到服务端的连接释放报文段后,对此发出确认报文段(ACK=1,seq=u+1,ack=w+1),客户端进入TIME_WAIT(时间等待)状态。此时TCP未释放掉,需要经过时间等待计时器设置的时间2MSL后,客户端才进入CLOSED状态。
第七章: 路由控制
动态路由和静态路由
路由协议IGP 和 EGP(Internal Gateway Protocol, External Gateway Protocol)
路由算法: 距离向量算法, 链路状态算法
RIP, RIP2, OSPF
BGP
RIP(Routine Information Protocol)
是距离向量型的一种路由协议, 广泛应用于LAN口.
采用RIP进行路由控制的范围内必须注意两点
- 因IP 地址的分类而产生不同的网络地址
- 构造网络地址长度不同的 网络环境时
RIP中路由变更时的处理:
- 将自己所知道的路由信息定期进行广播。
- 一旦认为网络被断开,数据将无法流过此路由器,其他路由器也就 可以得知网络已经断开。
以上两点存在一些问题, 解决办法
- 最长距离不超过16
- 规定路由器不再把所收到的路由消息原路返还给发送端。这也 被称作水平分割(Split Horizon)
- “毒性逆转”(Poisoned Reverse)
- “触发更新”(Triggered Update)
OSPF:(Open Shortest Path First)
是链路状态型路由协议, 生成网络拓扑信息再生成控制表.
BGP: (Border Gateway Protocol)
属于EGP
MPLS: (Multi Protocol Label Switching)
标记交换技术
第八章: 应用协议
- 登录协议: TELNET SSH
- 文件传输: FTP协议
- 电子邮件: SMTP(Simple Mail Transfer Protocol) 和POP/IMAP协议
- Web HTTP协议 JavaScript Cookie CGI规范 RSS数据格式
- 网络管理 SNMP (Simple Network Management Protocol)