1 OSI模型

一种概念模型,由国际标准化组织提出,一个试图使各种计算机在世界范围内互连为网络的标准框架。

  • 物理层 例如线路、无线电、光纤、信鸽
  • 数据链路层 例如以太网、令牌环、HDLC、帧中继、ISDN、ATM、IEEE 802.11、FDDI、PPP
  • 网络层 例如IP、ICMP、IGMP、IPX、BGP、OSPF、RIP、IGRP、EIGRP、ARP、RARP、 X.25
  • 传输层 例如TCP、UDP、RTP、SCTP、SPX、ATP、IL
  • 会话层 例如ASAP、TLS、SSH、ISO 8327 / CCITT X.225、RPC、NetBIOS、ASP、Winsock、BSD sockets
  • 表示层 例如XDR、ASN.1、SMB、AFP、NCP
  • 应用层 例如HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS、RTSP、XMPP、Whois、ENRP

2 TCP/IP协议

2.1 TCP/IP协议的定义

是指能够在多个不同网络间实现信息传输的协议簇

2.1 TCP/IP协议的分层

TCP/IP协议族按照层次由上到下,层层包装

2.1.1 应用层

  • 浏览器和服务端之间通信所用的协议是HTTP协议,所传输数据的主要格式为HTML
  • 发送电子邮件时用到的协议是SMTP。
  • 文件传输(FTP)
  • 远程登录常用TELNET与SSH两种协议。远程登录是指登录到远程的计算机上,使那台计算机上的程序得以运行的一种功能。
  • 网络管理(SNMP)

2.1.2 传输层

传输层最主要的功能是能够让应用程序之间实现通信,并且定义了两种服务质量不同的协议

  • TCP协议是一个面向连接的、可靠的协议。它可以保证两端通信主机之间的通信可达。
  • UDP传送数据前并不与对方建立连接,对接收到的数据也不发送确认信号,发送端不知道数据是否会正确接收,当然也不用重发,所以说UDP是无连接的、不可靠的一种数据传输协议。

2.1.3 网络层

IP协议负责对数据加上IP地址和其他的数据以确定传输的目标

2.1.4 链路层

包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。链路层为待传送的数据加入一个以太网协议头,并进行CRC编码,为最后的数据传输做准备

2.2 TCP/IP协议通信的过程

通信的过程其实就对应着数据装包与拆包的过程。装包的过程,数据发送方每层不断地封装首部,添加一些信息用于传输,确保能传输到目的地。拆包的过程,数据接收方每层不断地拆除首部,得到最终传输的数据
网络通信协议-TCP/IP+Http

2.3 如何建立TCP/IP连接?(三次握手)

在TCP/IP协议中,TCP协议提供可靠的连接服务,连接是通过三次握手进行初始化的。所谓三次握手是指建立一个 TCP 连接时需要客户端和服务器端总共发送三个包以确认连接的建立。三次握手的目的是同步连接双方的***和确认号并交换 TCP窗口大小信息。

  1. 第一次握手:客户端发送一个TCP标志位SYN=1,ACK=0的数据包给服务端,并随机会产生一个Seq=J.当服务端接收到这个数据后,服务端由SYN=1可知客户端是想要建立连接;
  2. 第二次握手:服务端要对客户端的联机请求进行确认,向客户端发送应答号ACK=1、SYN=1 确认号Ack=J+1,此值是客户端的***加1,还会产生一个随机的***Seq=K,这样就告诉客户端可以进行连接;
  3. 第三次握手:客户端收到数据后检查Ack是否为J+1,以及标志位ACK的值是否为1,若为1,则会发送ACK=1、确认号码Ack=K+1,告诉服务端,你的请求连接被确认,连接可以建立,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。

2.4 如何建立TCP/IP连接?(三次握手)

相关文章: