TCP/IP学习

1.简介

TCP/IP指传输控制协议/网际协议(Transmission Control Protocal/Internet Protocol),是用于因特网(internet)的通信协议,它定义了电子设备(比如计算机)如何连入因特网,以及数据如何在它们之间传输的标准

2.TCP/IP的内部协议

在TCP/IP中包含着一系列用于处理数据的主要通信协议:

  • TCP(传输控制协议):用于应用程序之间的通信(面向连接),与UDP相比,TCP提供的服务更可靠
  • UDP(用户数据报协议):用于应用程序之间的简单通信(无连接),无需建立连接就能够发送封装的IP数据包
  • IP(网际协议):用于计算机之间的通信,IP是整个TCP/IP的核心,也是构成互联网的基础,位于OSI七层模型的网络成,对上可载送传输层各种协议的信息,例如TCP,UDP等;对下可将IP信息包放到链路层,通过以太网、令牌环网络等各种技术来传送;为了适应异构网络,IP强调适应性、简洁性、可操作性,并在可靠性做了一些牺牲
  • ICMP(因特网消息控制协议):针对错误和状态,用于在IP主机、路由器之间传递控制消息
  • DHCP(动态主机配置协议):针对动态寻址,它是一个局域网的网络协议,指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码

表:OSI七层模型、TCP/IP概念模型和TCP/IP协议簇

 

 

   tips:TCP/IP五层模型是将OSI七层模型中的应用层、表示层和会话层一同归纳为了应用层

 3.TCP/IP

TCP/IP意味着TCP和IP一起协同工作。

TCP负责应用软件(如浏览器)和网络软件之间的通信

IP负责计算机之间的通信

TCP负责将数据分割并装入IP包,然后在它们到达时重新组合

IP负责将包发送到接收者

4.TCP/IP的三次握手和四次挥手

客户端与服务器之间的三次握手:

图像解释:

 

 

客户端与服务器的四次挥手:

先由客户端向服务器端发送一个FIN,请求关闭数据传输。

当服务器接收到客户端的FIN时,向客户端发送一个ACK,其中ack的值等于FIN+SEQ

然后服务器向客户端发送一个FIN,告诉客户端应用程序关闭。

当客户端收到服务器端的FIN是,回复一个ACK给服务器端。其中ack的值等于FIN+SEQ

四次挥手保证了数据能够完整传输,当被动方收到主动方的FIN报文通知时,它仅仅表示主动方没有数据再发送给被动方了。

但未必被动方所有的数据都完整的发送给了主动方,所以被动方不会马上关闭SOCKET,它可能还需要发送一些数据给主动方后,

再发送FIN报文给主动方,告诉主动方同意关闭连接,所以这里的ACK报文和FIN报文多数情况下都是分开发送的。

 

posted @ 2020-09-01 18:40  walkwater  阅读(180)  评论(0编辑  收藏  举报