首页 > 编程知识 正文

socket是通信协议吗,socket技术是构建在什么协议上的

时间:2023-05-04 11:14:18 阅读:189782 作者:3591

要理解TCP/IPsocket,首先是TCP/IP协议族、TCP/IP (transmissioncontrolprotocol/internet protocol,传输控制协议/IP )

字面上TCP/IP是TCP和IP协议的总称,但实际上TCP/IP协议是指整个互联网TCP/IP协议家族。 与ISO模型的七个层次不同,TCP/IP协议参考模型将所有TCP/IP系列协议分为四个抽象层次

应用层: TFTP、HTTP、SNMP、FTP、SMTP、DNS、Telnet等

传输层: TCP、UDP

网络层: IP、ICMP、OSPF、EIGRP、IGMP

数据链路层: SLIP、CSLIP、PPP、MTU

每个抽象层都构建在下层提供的服务之上,为上层提供服务。 它可能看起来像这样

我想有兴趣打开这篇文章的同学对此有一定程度的了解,我也知道一半,所以不再详细说明。 感兴趣的同学可以尝试在网上搜索资料

维基百科

百度百科

在TCP/IP协议中,两台互联网主机通过两个路由器和相应的层连接。 每台主机上的应用程序通过几个数据通道相互执行读取操作

套接字我们知道如果两个进程需要进行通信,最基本的前提是可以唯一地标记一个进程。 在本地进程通信中,可以使用PID唯一地标记一个进程,但PID仅在本地是唯一的,因为网络中的两个进程的PID冲突概率很高,所以需要其他路径。 我知道IP层的IP地址可以唯一地标记主机,而TCP层的协议和端口号可以唯一地标记主机上的一个进程。 此时,IP层的IP地址可以唯一标记主机

一旦可以唯一标记网络中的进程,就可以使用套接字进行通信了。 插座是什么? 我们经常把插座翻译成插座。 套接字是应用层和传输层之间的抽象层,它将TCP/IP层的复杂操作抽象为应用层用于调用已实现进程并通过网络进行通信的几个简单接口。

套接字起源于UNIX。 在UNIX所有文件哲学的思想下,套接字实现了“打开读/写关闭”的模式,服务器和客户端各自维护一个“文件”,建立连接并打开后,将内容写入自己的文件,相

套接字通信过程套接字是“打开-读/写-关闭”模式的实现,以使用TCP协议进行通信的套接字为例,其交互过程将如下

服务器根据地址类型(ipv4,ipv6 )、套接字类型和协议创建套接字

服务器绑定套接字的ip地址和端口号

服务器套接字接收端口号请求并准备随时接收来自客户端的连接。 此时,服务器套接字未打开

客户端创建套接字

客户端打开套接字,并尝试根据服务器的ip地址和端口号连接到服务器套接字

服务器套接字接收客户端套接字请求,并被动打开,然后开始接收客户端请求,直到客户端返回连接信息。 此时,socket处于阻塞状态(即所谓的阻塞(accept ) ),并且在客户端返回连接信息之前不会返回。 开始接收下一个客户了解请求

客户端成功连接,并将连接状态信息发送到服务器

服务器的accept方法返回,连接成功

客户端向套接字写入信息

服务器读取信息

关闭客户端

关闭服务器端

在三次握手TCP/IP协议中,TCP协议通过三次握手建立信任连接

首次握手:客户端尝试连接到服务器,然后将syn数据包(同步序列号Synchronize Sequence Numbers)发送到服务器。 在syn=下,客户端进入SYN_SEND状态并等待服务器确认

第二次握手:服务器接收并确认客户端的syn包。 (ack=991 )同时向客户端发送SYN ACK包,即syn包(syn=k)。 此时,服务器将进入SYN_RECV状态

第三次握手:第三次握手:客户端从服务器接收SYN ACK包,然后向服务器发送确认包ack(ack=k1 )。 此包发送完成,客户端和服务器处于ESTABLISHED状态,第三次握手完成

仔细看。 服务器套接字和客户端套接字连接的部分,实际上是有名的3次握手

原文地址: http://www.cn blogs.com/dolphinx //3460545.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。