socket工作与TCP/IP的哪一层?

作者&投稿:高逃 (若有异议请与网页底部的电邮联系)
Socket属于TCP/IP中的哪一层?~

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

TCP/IP是网络协议,它是对于数据传输的一种普遍的格式和方法的规定。socket不是协议,而是具体到针对某一次特定的数据传输,发送和接收端使用的一些信息——一般而言,一个socket需要包括以下的基本信息——发送端地址,接收端地址,传输过程使用的协议(可以是TCP也可以不是)。在操作系统里面,socket是系统和网络堆栈之间的接口,数据从各种应用先送到socket,再从这里进入网络堆栈。

传输层

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

听人说只是一个接口,跟层次没关系。一般用在传输层和应用层之间,通过socket可以传输tcp,udp,ip协议的数据包,具体在哪层不清楚。
我也新手,一起学习吧。

应用层,原始套接字是工作在链路层的

tcp在应用层,ip在网络层


炽热战地2的操作指南
当敌营有ocket camera的话,当飞行员不是一个很好的选择。如果你是神射手的话,狙击步枪或者50CAL会是一个很好的选择。重型突击步枪可以杀死更多敌人。27、炽热战地2怎么买枪开始游戏后人物的右上角有4个职业。分别是自动步枪 狙击步枪 机枪 和火箭筒。玩家可以租赁或者购买枪支,需要花费荣誉点。28、炽热战地2怎么...

i often borrow some books from(l)
根据句意添单词,首字母已给出 i often borrow___ some books from the library i am looking for a book,but i can't find it on the s___what's in your p_ocket___,ann?--- some money,about 20 yuan they are having classes in the c_lassroom___classes b_egins___ at ...

旺苍县13432194179: TCP和SOCKET什么关系 -
公莺产灵: ISO把网络分成7层.我平时说的网络,指的是以太网,至于什么是以太网,LZ可以问google,以太网把网络分成了4层,应用层,传输层,网络层,数据链路层.HTTP是应用层协议,TCP(传输控制协议)UDP(用户数据协议)他们是传输层...

旺苍县13432194179: socket工作与TCP/IP的哪一层? -
公莺产灵: 听人说只是一个接口,跟层次没关系.一般用在传输层和应用层之间,通过socket可以传输tcp,udp,ip协议的数据包,具体在哪层不清楚.我也新手,一起学习吧.

旺苍县13432194179: 你知道什么叫TCP/IP技巧?它的物理层用的是几M的光纤?
公莺产灵: 1建立在传输层协定上的抽象数据构造socket作为收集中数据交换的列队点,是TCP/IP收集最为通用的API.文┞仿在介绍TCP协定客户端和办事器端过程通信流程和具体实现的基本上,以Delphi情况为编程说话说清楚明了在Windows下应用socket...

旺苍县13432194179: TCP 和 UDP 在socket编程中的区别 -
公莺产灵: 实现方法 以及API 不同.运用的地方不同.当然主要取决去二者的各自特点.1)TCP是面向连接的传输控制协议,而UDP提供了无连接的数据报服务; (2)TCP具有高可靠性,确保传输数据的正确性,不出现丢失或乱序;UDP在传输数据前不建立连接,不对数据报进行检查与修改,无须等待对方的应答,所以会出现分组丢失、重复、乱序,应用程序需要负责传输可靠性方面的所有工作; (3)也正因为以上特征,UDP具有较好的实时性,工作效率较TCP协议高; (4)UDP段结构比TCP的段结构简单,因此网络开销也小. 具体二种协议没有好坏,只有适合,有时候二者结合,比如QQ就是两种协议都有,比如组播通信的时候只能用udp

旺苍县13432194179: UDP 和 TCP 的 socket 分别一般用在什么地方 -
公莺产灵: 0、TCP是面向流字符的,数据流间无边界;UDP是面向分组的,分组间有明确的边界.对于TCP,发送一串数字(1,2,3,4,5),接收时有可能变成两次(1,2)和(2,4,5),或者变成任意接收方式,协议栈只保证接收顺序正确;UDP发送一个分...

旺苍县13432194179: SOCKET与TCP,UDP有什么关系? -
公莺产灵: SOCKET是TCP、UDP的实现方式,用SOCKET编程可以实现TCP、UDP的通信.

旺苍县13432194179: TCP socket 通信的流程? -
公莺产灵: socket 分服务器端和客户端: 服务器端:先初始化socket 然后用该socket监听网络连接请求 收到请求就建立连接,进行数据通信 客户端:初始化socket 建立客户端的socket,,发送请求,连接,发送数据 关闭socket

旺苍县13432194179: 我在很多招聘中都看到熟悉HTTP、TCP/IP、socket通信,请大侠们帮我解释一下socket和tcp/ip到底是什么关系 -
公莺产灵: tcp/ip是网络通信协议 socket是网络编程接口

旺苍县13432194179: socket是tcp还是udp -
公莺产灵: tcp/ip 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. 建立网络通信连接至少要一对端口号(socket).socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力.

旺苍县13432194179: socket编程和TCP协议传输数据的问题 c++ -
公莺产灵: tcp会按照固定大小发送消息报,如果你的消息报比tcp设定的大的话,tcp会将其拆分

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网