TCP 建立的3次握手, 和关闭的4次握手

 

TCP/IP 寻址

TCP/IP 使用 32 个比特或者 4 个 0 到 255 之间的数字来为计算机编址。

 

TCP/IP 连接

用S(service) 代表服务端, C(client) 代表客户端

建立连接

建立连接, 需要3此握手
首先, C --> S, 发送SYN请求, 告诉S我要跟你建立连接了,
接着, S --> C, 回应SYN+ACK, 我接受到你的请求, 可以建立连接,
最后, C --> S, C 会再次发送ACK请求回应S 确认, 我们建立连接.

为什么要3次握手:
当S 收到C 的SYN连接请求后, 可以直接发送SYN+ACK报文, 其中ACK报文是用来应答的, SYN报文用来同步的, 双方都在同意的情况下建立连接, 保证了连接的安全性

关闭连接

关闭连接, 需要4此握手
首先, C --> S, 发送一条FIN, 告诉S 可以关闭了,
然后, S --> C, S 接收会回应已提交ACK. 告诉C 我还没准备好关闭呢, 等一会, 
接着, S --> C, 当S 准备好了, 发送一条FIN, 我已经准备好关闭了,
最后, C --> S, C 接收到会发送一条ACK确认信息, 保证大家一起关闭. TCP连接也这样关闭了.
(考虑网络不稳定的情况, 还做了一个操作, 就是等待超过2MSL之后才能进入Closed状态, 万一ACK有丢失, 就会一直处在TIME_WAIT状态中, 所以才需要等待一个报文段最大时间之后进入Closed状态)

为什么要4次握手呢:
当S 端收到C 端的报文, S 端可能没处理完事情, 所以不会立即关闭Socket, 只能先回复一条ACK, 告诉C 端我收到你的请求, 当S 的事都做完了, 马上会发送FIN报文, 告诉C 我们可以关闭了, TCP也就关闭了
SYN(SYNchronization) : 在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文。对方若同意建立连接,则应在响应报文中使SYN=1和ACK=1. 因此,  SYN置1就表示这是一个连接请求或连接接受报文。
ACK : TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1
FIN (finis)即完,终结的意思, 用来释放一个连接。当 FIN = 1 时,表明此报文段的发送方的数据已经发送完毕,并要求释放连接。

域名

将12个数字使用一个TCP/IP 地址表示被称为域名

当你键入一个像 http://www.w3school.com.cn 这样的域名,域名会被一种 DNS 程序翻译为数字

协议

TCP/IP 是不同的通信协议的大集合。

协议族

TCP/IP 是基于 TCP 和 IP 这两个最初的协议之上的不同的通信协议的大的集合。

TCP - 传输控制协议

TCP 用于从应用程序到网络的数据传输控制。

TCP 负责在数据传送之前将它们分割为 IP 包,然后在它们到达的时候将它们重组。

IP - 网际协议

IP 负责计算机之间的通信。

IP 负责在因特网上发送和接收数据包。

HTTP - 超文本传输协议

HTTP 负责 web 服务器与 web 浏览器之间的通信。

HTTP 用于从 web 客户端(浏览器)向 web 服务器发送请求,并从 web 服务器向 web 客户端返回内容(网页)。

HTTPS - 安全的 HTTP

HTTPS 负责在 web 服务器和 web 浏览器之间的安全通信。

作为有代表性的应用,HTTPS 会用于处理信用卡交易和其他的敏感数据。

SSL - 安全套接字层

SSL 协议用于为安全数据传输加密数据。

SMTP - 简易邮件传输协议

SMTP 用于电子邮件的传输。

MIME - 多用途因特网邮件扩展

MIME 协议使 SMTP 有能力通过 TCP/IP 网络传输多媒体文件,包括声音、视频和二进制数据。

IMAP - 因特网消息访问协议

IMAP 用于存储和取回电子邮件。

POP - 邮局协议

POP 用于从电子邮件服务器向个人电脑下载电子邮件。

FTP - 文件传输协议

FTP 负责计算机之间的文件传输。

NTP - 网络时间协议

NTP 用于在计算机之间同步时间(钟)。

DHCP - 动态主机配置协议

DHCP 用于向网络中的计算机分配动态 IP 地址。

SNMP - 简单网络管理协议

SNMP 用于计算机网络的管理。

LDAP - 轻量级的目录访问协议

LDAP 用于从因特网搜集关于用户和电子邮件地址的信息。

ICMP - 因特网消息控制协议

ICMP 负责网络中的错误处理。

ARP - Address Resolution Protocol

ARP - 用于通过 IP 来查找基于 IP 地址的计算机网卡的硬件地址。

RARP - Reverse Address Resolution Protocol

RARP 用于通过 IP 查找基于硬件地址的计算机网卡的 IP 地址。

BOOTP - Boot Protocol

BOOTP 用于从网络启动计算机。

PPTP - 点对点隧道协议

PPTP 用于私人网络之间的连接(隧道)。

posted @ 2016-08-22 12:28  To-J  阅读(178)  评论(0编辑  收藏  举报