博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网络篇
阅读量:6567 次
发布时间:2019-06-24

本文共 1355 字,大约阅读时间需要 4 分钟。

hot3.png

计算机网络体系结构:

154215_SMXM_2621781.png

OSI(Open System Interconnection)开放式系统互联:

理念完整,复杂不实用

TCP/IP(Transmission Control Protocol/Internet Protoco) :

因特网核心协议

154907_Swx6_2621781.png

五层体系结构:方便理解

IP:

ip地址:

组成:4个字节即32位 = 网络号+主机号

161814_LyKr_2621781.png

特别注意:在各类IP地址中,有一些IP地址用于特殊用途,不能用于做主机IP地址

161859_jvBU_2621781.png

路由表:

164230_1k2d_2621781.gif

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. 第一次挥手:主机1(可以使客户端,也可以是服务器端),设置Sequence NumberAcknowledgment Number,向主机2发送一个FIN报文段;此时,主机1进入FIN_WAIT_1状态;这表示主机1没有数据要发送给主机2了;
  2. 第二次挥手:主机2收到了主机1发送的FIN报文段,向主机1回一个ACK报文段,Acknowledgment NumberSequence Number加1;主机1进入FIN_WAIT_2状态;主机2告诉主机1,我“同意”你的关闭请求;
  3. 第三次挥手:主机2向主机1发送FIN报文段,请求关闭连接,同时主机2进入LAST_ACK状态;
  4. 第四次挥手:主机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

 

 

转载于:https://my.oschina.net/HeroOneHY/blog/1486669

你可能感兴趣的文章
Tkinter之Label
查看>>
PostgreSQL merge json的正确姿势
查看>>
java反射
查看>>
【IOS-COCOS2D游戏开发之二】COCOS2D 游戏开发资源贴(教程以及源码)
查看>>
nodejs安装记录
查看>>
Android2.2 API 中文文档系列(9) —— ZoomButton
查看>>
pcDuino 刷系统-卡刷
查看>>
MySQL结构自动同步工具-schemasync
查看>>
关于在线代码运行网站的一个想法
查看>>
我的友情链接
查看>>
使用subeclipse来管理分支/标记
查看>>
我的友情链接
查看>>
django forms模块使用
查看>>
FreeBSD IPFW 防火墙的安装和设置
查看>>
Linux分区和文件系统 ⑥
查看>>
ClipDrawable--水漫起来的效果
查看>>
osd内的pg数量
查看>>
shell脚本与mysql交互方法汇总
查看>>
Cron 表达式详解和案例
查看>>
Android - 软件自动更新的实现
查看>>