网络基础模型及TCP三次握手

1. 网络基础模型

国际标准组织制定了OSI(Open System Interconnection)七层参考模型,但是由于其在设计过程中是面向技术的,太过于复杂,在实际生产过程中用到的是TCP/IP四层参考模型,模型及介绍如下:

                          

1. 网络接口层

主要协议是ARP、RARP,主要功能是对数据链路的管理,包括错误检测,不同通信媒介有关信息细节问题处理等。

2. 网络层

主要协议有IP、IGMP、ICMP等,主要负责对网络中封装完成后的数据包的传递,为数据包选择合适路由。

3. 传输层

主要协议有UDP、TCP等,负责获取全部信息,提供端到端的接口。

4. 应用层

主要协议有Telnet、SMTP、FTP等,负责实现具体的功能,如电子邮件,文件传输。

2.TCP/IP协议

TCP/IP协议是网络中常见的协议之一,如图所示,客户端和服务端在建立连接之前会进行“三次握手”:

所谓三次握手是指建立一个 TCP 连接时需要客户端和服务器端总共发送三个包以确认连接的建立。三次握手的目的是同步连接双方的序列号和确认号并交换 TCP窗口大小信息。

第一次握手:客户端发送一个TCP标志位SYN=1,ACK=0的数据包给服务端,即告诉服务端该客户端想要建立连接;

第二次握手:服务端要对客户端的联机请求进行确认,向客户端发送应答号ACK=1、SYN=1;即告诉客户端可以进行连接;

第三次握手:客户端收到数据后检查ACK标志,如果为1,然后发送回应数据包,告诉服务端,客户端收到确认消息,准备连接。Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。

3.socket通信

在我们的PC中有很多的端口(Socket),而这些端口正是网络通信的基石。Socket的本质即是可编程接口,是对TCP、UDP等的封装。要建立网络通信需要通信双方同时提供一个未被占用的端口(双方端口号可不相同),使用该端口才能形成信息通道,进行数据的传输。Windows操作系统部分打开端口状态如下图:

             

 

 

通信分为单连接通信和多连接通信,单连接通信时同步通信;多连接通信是异步的,可以处理多个通信请求,无论是单连接通信还是多连接通信使用的协议均是TCP以及UDP协议。

TCP协议是基于连接的通信,在通信双方建立连接之前会通过三次握手的形式来建立可靠连接;而且在数据传输过程中有确认、窗口、重传、拥塞控制等机制来确保数据传输的可靠性;并且在数据传输完成后会断开连接来节约系统资源。但是TCP存在耗时的缺点,并且其保证可靠性的机制,如三次握手等可能会被进行DDOS攻击。

UDP协议是无连接的通信,没有三次握手等保证可靠性的机制,传递数据比较快;但是传输质量差,不可靠,不稳定。

我们应该根据实际情况选择使用TCP还是UDP,如对通讯质量有要求的场景,文件传输、邮件等使用TCP;在要求通讯速度快的情况,QQ语言、微信视频等使用UDP协议。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值