模型
七层模型
七个模型TCP/IP模型
TCP/IP模型网络访问层:ARP、RARP
互联网层:ICMP、IP
传输层:TCP、UDP
应用层:DNS、FTP、HTTP、SMTP、TELNET、IRC、WHOIS
什么是 IP ?
网络之间互连的协议(IP)是 Internet Protocol 的外语缩写,IP 是在 TCP/IP 协议中网络层的主要协议,任务是仅仅根据源主机和目的主机的地址传送数据。为此目的,IP 定义了寻址方法和数据报的封装结构。第一个架构的主要版本,现在称为 IPv4,仍然是最主要的互联网协议,尽管世界各地正在积极部署 IPv6。 IP 协议的作用是把各种数据包传送给对方。而要保证确实传送到对方那里,则需要满足各类条件。其中两个重要的条件是 IP 地址和 MAC地址(Media Access Control Address)。 IP 地址指明了节点被分配到的地址,MAC 地址是指网卡所属的固定地址。IP 地址可以和 MAC 地址进行配对。IP 地址可变换,但 MAC地址基本上不会更改。
什么是 Socket ?
应用在使用 TCP 或 UDP 时,会用到操作系统提供的类库。这种类库一般被称为 API(Application Programming Interface,应用编程接口)。 使用 TCP 或 UDP 通讯时,优惠广泛使用到套接字(Socket)的 API。套接字原本是由 BSD UNIX 开发的,但是后被移植到了 Windows 的 Winsock 以及嵌入式操作系统中。 应用程序利用套接字,可以设置对端的 IP 地址,端口号,并实现数据的发送与接收。 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个 Socket。 建立网络通信连接至少要一对端口号(Socket)。Socket 本质是编程接口(API),对 TCP/IP 的封装,TCP/IP 也要提供可供程序员做网络开发所用的接口,这就是 Socket 编程接口;HTTP 是轿车,提供了封装或者显示数据的具体形式;Socket 是发动机,提供了网络通信的能力。
TCP
三次握手:
- 客户端发送 SYN(SEQ=x)报文给服务器端,进入 SYN_SEND 状态。
- 服务器端收到 SYN 报文,回应一个 SYN (SEQ=y)ACK(ACK=x+1)报文,进入 SYN_RECV 状态。
- 客户端收到服务器端的 SYN 报文,回应一个 ACK(ACK=y+1)报文,进入 Established 状态。
四次挥手:
- 某个应用进程首先调用 close,称该端执行“主动关闭”(active close)。该端的 TCP 于是发送一个 FIN 分节,表示数据发送完毕。
- 接收到这个 FIN 的对端执行 “被动关闭”(passive close),这个 FIN 由 TCP 确认。
注意:FIN 的接收也作为一个文件结束符(end-of-file)传递给接收端应用进程,放在已排队等候该应用进程接收的任何其他数据之后,因为,FIN 的接收意味着接收端应用进程在相应连接上再无额外数据可接收。
- 一段时间后,接收到这个文件结束符的应用进程将调用 close 关闭它的套接字。这导致它的 TCP 也发送一个 FIN。
- 接收这个最终FIN的原发送端 TCP(即执行主动关闭的那一端)确认这个 FIN。
既然每个方向都需要一个 FIN 和一个 ACK,因此通常需要4个分节。
网友评论