关闭连接:客户端和服务器都可以发起关闭连接
假设服务器发起的,则过程如下:
- TCP头部控制位FIN为1(调用Socket库的close程序,委托IP模块发送)
- 客户端收到,返回ACK号(客户端套接字标记为断开)
- 客户端生成FIN为1的TCP包,发送至服务器
- 服务器返回ACK,通信结束
(断开的操作,也会丢包重发,所以套接字不会立即删除,防止一些误操作)
TCP/IP包的结构
MAC头部+IP头部+TCP头部+数据块
传输方向:客户端->集线器->路由器->....路由器->服务器
集线器:集线器里面有一张表,根据MAC头部(以太网)知道包往哪个方向(路由器)传 路由器:路由器里面也有一张表,根据IP头部,改写MAC头部,知道往哪一个路由器传
分层有助于架构灵活,这里的MAC头部(以太网可以替换为无线局域网、ADSL、FTTH等)
防火墙的结构和原理
防火墙只允许发往特定服务器的特定应用程序的包通过(包过滤)