你要知道的http--TCP/IP

181 阅读5分钟

什么是TCP/IP模型?

TCP/IP模型是一系列网络协议的总称,这些协议的目的,就是使计算机之间可以进行信息交换。

所谓"协议"可以理解成机器之间交谈的语言,每一种协议都有自己的目的。TCP/IP模型一共包括几百种协议,对互联网上交换信息的各个方面都做了规定。

TCP/IP三次握手

1. 第一次握手

请求端(通常为客户)发送一个SYN段指明客户打算连接的服务器端口,以及初始序号(ISN)。这个SYN段为报文段1。

2. 第二次握手

服务器发回包含服务器初始序号的SYN报文段(报文段2)作为应答。同时,将确认序号(ACK)设置为客户的ISN加1以对客户的SYN报文段进行确认。一个SYN将占用一个序号。

3. 第三次握手

客户必须将确认序号设置为服务器的ISN加1以对服务器的SYN报文段进行确认(报文段3)

四次挥手

建立一个连接需要三次握手,而终止一个连接要经过4次握手。这由TCP的半关闭(half-close)造成的。既然一个TCP连接是全双工(即数据在两个方向上能同时传递),因此每个方向上必须单独的进行关闭。

1. 第一次挥手

客户端发送一个FIN(报文段4)

2. 第二次挥手

服务器收到这个FIN, 它发回一个ACK, 确认序号为收到的序号加1(报文段5)。和SYN一样,一个FIN也占用一个序号.

3. 第三次挥手

TCP服务器向应用程序,发送一个文件结束符(FIN)

4. 第四次挥手

发送一个确认信号(ACK),将确认信号设置为收到序号加1

TCP的六种状态

SYN(建立联机) ACK(确认) PSH(传送) FIN(结束) RST(重置) URG(紧急)

OSI七层模型 和 TCP/IP四层模型

应用层

针对特定应用的协议。例如电子邮件协议Email, 远程登录协议SSH, 文件传输协议FTP, 网络请求协议HTTP。

表示层

它的主要功能之一就是为异种机通信提供一种通用语言,以便能进行相互操作。表示层是处理所有与数据表示及运输有关的问题。如转换、加密和压缩。如果你想要用尽量少的词来记住表示层那就是一种通用的数据格式

会话层

是在通信双方建立通信时创建、维持和之后终止或断开连接的地方。

传输层

有了Mac地址和IP地址我们就能在任意两台电脑上进行通讯。那么问题来了,同一台主机上的不同应用程序是如何区分的呢?

端口

它实际上是每个使用网卡程序的编号。端口是从0到65535的一个整数,正好16个二进制位。0 - 1023被系统占用,我们只能使用大于1023的端口号。

传输层的作用

创建端口到端口通讯,相比网络层是创造主机到主机的通讯。Unix系统就是把主机 + 端口叫做 ”套接字“,也叫”Socket“.

UDP协议

UDP是一个非连接的协议,传输数据之前源端和终端不建立连接。UDP协议的优点是容易实现,简单,传输效率高。可是缺点就是可靠性差,一旦数据发出去即使发生丢失也不会重新发送,而且并不知道对方是否真的收到了数据。

TCP协议

TCP协议,传输控制协议,是一种面向连接的,可靠的,基于字节流的传输层通信协议。

网络层

它的作用是区分哪些计算机在同一个子网(局域网),这个套机制就叫做网络地址,也就是ip地址。

IP协议

TCP/IP体系中的网络层协议。IP是整个TCP/IP协议族的核心,也是构成互联网的基础。IP位于TCP/IP模型的网络层(相当于OSI模型的网络层),对上可载送传输层各种协议的信息,例如TCP、UDP等;对下可将IP信息包放到链路层,通过以太网、令牌环网络等各种技术来传送。

数据链数层

单纯的 01 是没有任何意义的,必须规定特定的解读方式。例如:多少个电信号为一组,每个信号位是什么意义。这就是数据链路层的作用,它规定了 01 的分组方式。

以太网协议

早些时候每家公司都拥有自己的电信号分组方式。后来出现了“以太网协议”逐渐占据了主导地位。“以太网”规定,一组电信号构成一个数据包,叫做“帧(Frame)”。每一帧分成两个部分,标头(Head)和数据(Data)。

Mac地址

以太网规定,接入网络的所有设备都必须具有“网卡”接口。“网卡”的地址就是数据包的发送地址和接收地址,也就是“Mac地址”。每块网卡在出厂的时候都拥有有一个世界上独一无二的Mac地址,长度是48位的二进制,通常用12位16进制数表示。前六个16进制数是厂商编号,后6个是该厂商的网卡流水号,有了Mac地址就可以定位网卡和数据包的路径了。

物理层

把电脑连接起来的物理手段。例如:光缆、电线、双绞线、无线电波等。它主要规定了网络的一些电气特性,作用是传输 01 的电信号。

说明

在TCP/IP四层模型中,应用层、表示层、会话层统一为应用层。在这个模型中,主要是以通信为核心,所以也没余物理层。