计算机网络体系结构:
OSI(Open System Interconnection)开放式系统互联:
理念完整,复杂不实用
TCP/IP(Transmission Control Protocol/Internet Protoco) :
因特网核心协议
五层体系结构:方便理解
IP:
ip地址:
组成:4个字节即32位 = 网络号+主机号
特别注意:在各类IP地址中,有一些IP地址用于特殊用途,不能用于做主机IP地址
路由表:
destination 目的网段
mask 子网掩码
gateway 下一跳路由器入口ip,
interface 到达该目的地的本路由器出口ip
metric 跳数
TCP:
Transmission Control Protocol 传输控制协议
一、TCP建立连接三次握手
(1)、三次握手的过程
1)主机A向主机B发送TCP连接请求数据包 2)主机B收到请求后,会发回连接确认数据包 3)第三次,主机A收到主机B的确认报文后,还需作出确认
(2)为什么需要第三次握手?
第三次握手,主机A发送一次确认是为了防止:如果客户端迟迟没有收到服务器返回的确认报文,这时他会放弃连接,重新启动一条连接请求;但问题是:服务器不知客户端没收到,所以他会收到两个连接请求,白白浪费了一条连接开销。
附:如果第三次握手失败了,服务端会从新发送ack如果超过设定的时间或者设定的重发次数,再进入CLOSED状态
二、TCP释放连接四次握手
(1)四次握手过程
- 第一次挥手:主机1(可以使客户端,也可以是服务器端),设置
Sequence Number
和Acknowledgment Number
,向主机2发送一个FIN
报文段;此时,主机1进入FIN_WAIT_1
状态;这表示主机1没有数据要发送给主机2了; - 第二次挥手:主机2收到了主机1发送的
FIN
报文段,向主机1回一个ACK
报文段,Acknowledgment Number
为Sequence Number
加1;主机1进入FIN_WAIT_2
状态;主机2告诉主机1,我“同意”你的关闭请求; - 第三次挥手:主机2向主机1发送
FIN
报文段,请求关闭连接,同时主机2进入LAST_ACK
状态; - 第四次挥手:主机1收到主机2发送的
FIN
报文段,向主机2发送ACK
报文段,然后主机1进入TIME_WAIT
状态;主机2收到主机1的ACK
报文段以后,就关闭连接;此时,主机1等待2MSL后依然没有收到回复,则证明Server端已正常关闭,那好,主机1也可以关闭连接了。
(3)为什么TCP释放连接需要四次?
TCP建立连接要进行三次握手,而断开连接要进行四次。这是由于TCP的半关闭造成的。因为TCP连接是全双工的(即数据可在两个方向上同时传递)所以进行关闭时每个方向上都要单独进行关闭。这个单方向的关闭就叫半关闭。当一方完成它的数据发送任务,就发送一个FIN来向另一方通告将要终止这个方向的连接。
附:如果第四次握手失败了
TCP/IP和OSI http://blog.sina.com.cn/s/blog_611a32ff0100gxkg.html