socket技术是构建在什么协议上的(socket工作与TCP/IP的哪一层)

2025-12-21 23:00:02 :0

socket技术是构建在什么协议上的(socket工作与TCP/IP的哪一层)

各位老铁们,大家好,今天由我来为大家分享socket技术是构建在什么协议上的,以及socket工作与TCP/IP的哪一层的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

本文目录

socket工作与TCP/IP的哪一层

传输层

要想明白 Socket,必须要理解 TCP 连接。

TCP 三次握手:握手过程中并不传输数据,在握手后服务器与客户端才开始传输数据,理想状态下,TCP 连接一旦建立,在通讯双方中的任何一方主动断开连接之前 TCP 连接会一直保持下去。

Socket 是对 TCP/IP 协议的封装,Socket 只是个接口不是协议,通过 Socket 我们才能使用 TCP/IP 协议,除了 TCP,也可以使用 UDP 协议来传递数据。

创建 Socket 连接的时候,可以指定传输层协议,可以是 TCP 或者 UDP,当用 TCP 连接,该Socket就是个TCP连接,反之。

Socket 原理

Socket 连接,至少需要一对套接字,分为 clientSocket,serverSocket 

连接分为3个步骤:

(1) 服务器监听:服务器并不定位具体客户端的套接字,而是时刻处于监听状态;

(2) 客户端请求:客户端的套接字要描述它要连接的服务器的套接字,提供地址和端口号,然后向服务器套接字提出连接请求;

(3) 连接确认:当服务器套接字收到客户端套接字发来的请求后,就响应客户端套接字的请求,并建立一个新的线程,把服务器端的套接字的描述发给客户端。一旦客户端确认了此描述,就正式建立连接。而服务器套接字继续处于监听状态,继续接收其他客户端套接字的连接请求.

Socket为长连接:通常情况下Socket 连接就是 TCP 连接,因此 Socket 连接一旦建立,通讯双方开始互发数据内容,直到双方断开连接。在实际应用中,由于网络节点过多,在传输过程中,会被节点断开连接,因此要通过轮询高速网络,该节点处于活跃状态。

很多情况下,都是需要服务器端向客户端主动推送数据,保持客户端与服务端的实时同步。

若双方是 Socket 连接,可以由服务器直接向客户端发送数据。

若双方是 HTTP 连接,则服务器需要等客户端发送请求后,才能将数据回传给客户端。

因此,客户端定时向服务器端发送请求,不仅可以保持在线,同时也询问服务器是否有新数据,如果有就将数据传给客户端。

参考来源:

HTTP 和 Socket 的区别

HTTP与 Socket 的区别


OSI七层协议模型、TCP/IP四层模型学习笔记

socket通信—实现网络间的IO通信

图片来源

上文说到,socket可以实现数据传输的并发服务,我们可以定义多个客户端并发传输数据。

服务端需要先启动,并且while循环去接受客户端的消息:

TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计的。
UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是属于TCP/IP协议族中的一种。

Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。

TCP及socket通信原理

Socket通信原理

Socket属于TCP/IP中的哪一层

socket的实现部分, 就是系统协议栈部分, 应该包含了 网络层 (ip), 传输层(tcp/udp)等等。
用socket写程序的人, 就要看用socket那部分了。 如果你直接用ip层, rawsocket, 假如你自己写个tcp协议, 那你应该做的就是传输层。
如果你是用tcp/udp等协议, 做网络应用, 那应该是应用层。
其实如果按osi的模型来分。 每个从事软件或者硬件开发的人, 都应该能找到自己工作在那一层。

分享下TCP/IP.Http.Socket的区别

网络由下往上分为

物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层,

三者从本质上来说没有可比性,

socket则是对TCP/IP协议的封装和应用(程序员层面上)。

也可以说,TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,

而HTTP是应用层协议,主要解决如何包装数据。

关于TCP/IP和HTTP协议的关系,网络有一段比较容易理解的介绍:

“我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容。

   如果想要使传输的数据有意义,则必须使用到应用层协议。

   应用层协议有很多,比如HTTP、FTP、TELNET等,也可以自己定义应用层协议。

   WEB使用HTTP协议作应用层协议,以封装HTTP文本信息,然后使用TCP/IP做传输层协议将它发到网络上。”

   而我们平时说的最多的socket是什么呢,实际上socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API)。

   通过Socket,我们才能使用TCP/IP协议。

实际上,Socket跟TCP/IP协议没有必然的联系。

Socket编程接口在设计的时候,就希望也能适应其他的网络协议。

   所以说,Socket的出现只是使得程序员更方便地使用TCP/IP协议栈而已,是对TCP/IP协议的抽象,

   从而形成了我们知道的一些最基本的函数接口,比如create、listen、connect、accept、send、read和write等等。

   网络有一段关于socket和TCP/IP协议关系的说法比较容易理解:

   “TCP/IP只是一个协议栈,就像操作系统的运行机制一样,必须要具体实现,同时还要提供对外的操作接口。

   这个就像操作系统会提供标准的编程接口,比如win32编程接口一样,

   TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。”

关于TCP/IP协议的相关只是,用博大精深来讲我想也不为过,单单查一下网上关于此类只是的资料和书籍文献的数量就知道,

   这个我打算会买一些经典的书籍(比如《TCP/IP详解:卷一、卷二、卷三》)进行学习,今天就先总结一些基于基于TCP/IP协议的应用和编程接口的知识,也就是刚才说了很多的HTTP和Socket。

   CSDN上有个比较形象的描述:HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。

实际上,传输层的TCP是基于网络层的IP协议的,而应用层的HTTP协议又是基于传输层的TCP协议的,而Socket本身不算是协议,就像上面所说,它只是提供了一个针对TCP或者UDP编程的接口。

   下面是一些经常在笔试或者面试中碰到的重要的概念,特在此做摘抄和总结。

一、什么是TCP连接的三次握手

第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;

   第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

   第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

   握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。

   理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。

   断开连接时服务器和客户端均可以主动发起断开TCP连接的请求,断开过程需要经过“四次握手”(过程就不细写了,就是服务器和客户端交互,最终确定断开)

二、利用Socket建立网络连接的步骤

建立Socket连接至少需要一对套接字,其中一个运行于客户端,称为ClientSocket ,另一个运行于服务器端,称为ServerSocket 。

   套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认。

   1、服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态,等待客户端的连接请求。

   2、客户端请求:指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。

   为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。

   3、连接确认:当服务器端套接字监听到或者说接收到客户端套接字的连接请求时,就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,双方就正式建立连接。

   而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。

三、HTTP链接的特点

HTTP协议即超文本传送协议(Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用。

HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。

四、TCP和UDP的区别(考得最多。。快被考烂了我觉得- -//)

1、TCP是面向链接的,虽然说网络的不安全不稳定特性决定了多少次握手都不能保证连接的可靠性,但TCP的三次握手在最低限度上(实际上也很大程度上保证了)保证了连接的可靠性;

   而UDP不是面向连接的,UDP传送数据前并不与对方建立连接,对接收到的数据也不发送确认信号,发送端不知道数据是否会正确接收,当然也不用重发,所以说UDP是无连接的、不可靠的一种数据传输协议。

   2、也正由于1所说的特点,使得UDP的开销更小数据传输速率更高,因为不必进行收发数据的确认,所以UDP的实时性更好。

   知道了TCP和UDP的区别,就不难理解为何采用TCP传输协议的MSN比采用UDP的QQ传输文件慢了,但并不能说QQ的通信是不安全的,

   因为程序员可以手动对UDP的数据收发进行验证,比如发送方对每个数据包进行编号然后由接收方进行验证啊什么的,

   即使是这样,UDP因为在底层协议的封装上没有采用类似TCP的“三次握手”而实现了TCP所无法达到的传输效率。

文章分享结束,socket技术是构建在什么协议上的和socket工作与TCP/IP的哪一层的答案你都知道了吗?欢迎再次光临本站哦!

socket技术是构建在什么协议上的(socket工作与TCP/IP的哪一层)

本文编辑:admin

更多文章:


html网页模板(网页制作设计模板-旅游网页该如何设计模板)

html网页模板(网页制作设计模板-旅游网页该如何设计模板)

大家好,今天小编来为大家解答以下的问题,关于html网页模板,网页制作设计模板-旅游网页该如何设计模板这个很多人还不知道,现在让我们一起来看看吧!本文目录网页制作设计模板-旅游网页该如何设计模板有关婚礼微信邀请函模板(通用8篇)有什么好的H

2025年9月29日 04:45

this love歌词taylor(求Taylor Swift的Love Story的歌词的中文翻译~)

this love歌词taylor(求Taylor Swift的Love Story的歌词的中文翻译~)

今天给各位分享求Taylor Swift的Love Story的歌词的中文翻译~的知识,其中也会对求Taylor Swift的Love Story的歌词的中文翻译~进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目

2025年6月19日 16:30

span标签有内容却不显示(定义一个CSS,但是只有DIV可以显示出来,span等都无法显示)

span标签有内容却不显示(定义一个CSS,但是只有DIV可以显示出来,span等都无法显示)

“span标签有内容却不显示”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看span标签有内容却不显示(定义一个CSS,但是只有DIV可以显示出来,span等都无法显示)!本文目录定义一个CSS,但是只有DIV可以显示出来,

2026年7月29日 21:00

void sort是什么意思(请各位说说void sort里的算法是什么意思)

void sort是什么意思(请各位说说void sort里的算法是什么意思)

这篇文章给大家聊聊关于void sort是什么意思,以及请各位说说void sort里的算法是什么意思对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录请各位说说void sort里的算法是什么意思void sort在C语言中什

2025年6月20日 00:15

学电脑软件开发哪个学校好(电脑软件开发去什么学校学习比较好)

学电脑软件开发哪个学校好(电脑软件开发去什么学校学习比较好)

本篇文章给大家谈谈学电脑软件开发哪个学校好,以及电脑软件开发去什么学校学习比较好对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录电脑软件开发

2026年8月16日 18:45

语言指令有哪些(c语言指令有哪些啊)

语言指令有哪些(c语言指令有哪些啊)

“语言指令有哪些”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看语言指令有哪些(c语言指令有哪些啊)!本文目录c语言指令有哪些啊计算机语言指令分为几类ST语言编程里面的几个指令是什么意思c语言中预处理命令都有哪些C语言32个

2025年12月5日 16:45

subject都有什么意思(“subject ”是什么意思)

subject都有什么意思(“subject ”是什么意思)

大家好,关于subject都有什么意思很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于“subject ”是什么意思的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮

2026年8月15日 06:00

数据库的概念和作用(关于数据库的概念)

数据库的概念和作用(关于数据库的概念)

大家好,数据库的概念和作用相信很多的网友都不是很明白,包括关于数据库的概念也是一样,不过没有关系,接下来就来为大家分享关于数据库的概念和作用和关于数据库的概念的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!本文目录关于数

2025年9月9日 10:45

莫奈的网络解释莫奈的网络解释是什么?莫奈的解释莫奈的解释是什么

莫奈的网络解释莫奈的网络解释是什么?莫奈的解释莫奈的解释是什么

这篇文章给大家聊聊关于莫奈,以及莫奈的网络解释莫奈的网络解释是什么对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录莫奈的网络解释莫奈的网络解释是什么莫奈的解释莫奈的解释是什么莫奈风景油画作品经典莫奈油画欣赏莫奈的网络解释莫奈的

2025年7月29日 02:00

网页模板停用不能上报怎么办(请教一下,关于网页模板显示不出来的问题~~)

网页模板停用不能上报怎么办(请教一下,关于网页模板显示不出来的问题~~)

大家好,关于网页模板停用不能上报怎么办很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于请教一下,关于网页模板显示不出来的问题~~的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望

2025年10月22日 22:45

免费阅读小说大全下载(哪些网站可以直接免费TXT下载小说)

免费阅读小说大全下载(哪些网站可以直接免费TXT下载小说)

其实免费阅读小说大全下载的问题并不复杂,但是又很多的朋友都不太了解哪些网站可以直接免费TXT下载小说,因此呢,今天小编就来为大家分享免费阅读小说大全下载的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录哪些网站可以

2026年5月12日 02:45

可视化网站模板(不同模式的网站制作这些知识要知道)

可视化网站模板(不同模式的网站制作这些知识要知道)

大家好,关于可视化网站模板很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于不同模式的网站制作这些知识要知道的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目

2026年3月8日 21:15

dateadd函数的语法参数(在VB6.0中,DateAdd函数中,用“w“,“y“与“d“,我怎么感觉都一样呀,都是天)

dateadd函数的语法参数(在VB6.0中,DateAdd函数中,用“w“,“y“与“d“,我怎么感觉都一样呀,都是天)

“dateadd函数的语法参数”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看dateadd函数的语法参数(在VB6.0中,DateAdd函数中,用“w“,“y“与“d“,我怎么感觉都一样呀,都是天)!本文目录在VB6.0中

2026年2月21日 15:30

springfestival用in oron(the Spring Festival前用in还是on)

springfestival用in oron(the Spring Festival前用in还是on)

其实springfestival用in oron的问题并不复杂,但是又很多的朋友都不太了解the Spring Festival前用in还是on,因此呢,今天小编就来为大家分享springfestival用in oron的一些知识,希望可以

2026年8月28日 02:45

acquaintance歌曲(新年快乐英文歌除了happy new year还有那些)

acquaintance歌曲(新年快乐英文歌除了happy new year还有那些)

大家好,acquaintance歌曲相信很多的网友都不是很明白,包括新年快乐英文歌除了happy new year还有那些也是一样,不过没有关系,接下来就来为大家分享关于acquaintance歌曲和新年快乐英文歌除了happy new y

2026年4月19日 03:15

constantly continuously(constantly怎么读)

constantly continuously(constantly怎么读)

大家好,如果您还对constantly continuously不太了解,没有关系,今天就由本站为大家分享constantly continuously的知识,包括constantly怎么读的问题都会给大家分析到,还望可以解决大家的问题,下

2025年8月8日 18:15

微软windows官网(请问微软的官方网站在哪)

微软windows官网(请问微软的官方网站在哪)

各位老铁们,大家好,今天由我来为大家分享微软windows官网,以及请问微软的官方网站在哪的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目录请问微软的

2025年8月4日 08:45

a拼音怎么读(拼音a的发音)

a拼音怎么读(拼音a的发音)

各位老铁们好,相信很多人对a拼音怎么读都不是特别的了解,因此呢,今天就来为大家分享下关于a拼音怎么读以及拼音a的发音的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录拼音a的发音a在汉语拼音中读什么a的拼音是什么怎

2026年5月27日 13:45

官网无需代码构建(国内的无代码开发平台 有推荐吗)

官网无需代码构建(国内的无代码开发平台 有推荐吗)

大家好,官网无需代码构建相信很多的网友都不是很明白,包括国内的无代码开发平台 有推荐吗也是一样,不过没有关系,接下来就来为大家分享关于官网无需代码构建和国内的无代码开发平台 有推荐吗的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我

2025年12月17日 11:00

asp技术主要用来干嘛(ASP能为我们做什么)

asp技术主要用来干嘛(ASP能为我们做什么)

大家好,关于asp技术主要用来干嘛很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于ASP能为我们做什么的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目录A

2025年6月24日 23:00

近期文章

本站热文

electronics软件(labcenter electronics是什么软件)
2025-05-22 23:45:02 浏览:134
博客是微博吗(博客是微博吗)
2025-05-22 22:45:01 浏览:111
diversity and distribution(悬赏英语短文)
2025-05-23 16:15:02 浏览:107
ios软件开发前景(iOS就业前景怎么样)
2025-05-22 23:00:01 浏览:102
next month(有The next month这个单词吗,和 next month有什么区别)
2025-05-23 02:30:01 浏览:102
patron(patron是什么意思)
2025-05-23 10:30:02 浏览:95
标签列表

热门搜索