socket连接和TCP连接的关系

我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如HTTP、FTP、TELNET等,也可以自己定义应用层协议。WEB使用HTTP协议作应用层协议,以封装HTTP文本信息,然后使用TCP/IP做传输层协议将它发到网络上。

1)Socket是一个针对TCP和UDP编程的接口,你可以借助它建立TCP连接等等。而TCP和UDP协议属于传输层 。

而http是个应用层的协议,它实际上也建立在TCP协议之上。

(HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。)

2)Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。Socket的出现只是使得程序员更方便地使用TCP/IP协议栈而已,是对TCP/IP协议的抽象,从而形成了我们知道的一些最基本的函数接口。

SOCKET
API和TCP STATE的对应关系__三次握手(listen,accept,connect)__四次挥手close及TCP延迟确认(调用一次setsockopt函数,设置TCP_QUICKACK)__长连接API小心“窜包”问题

socket连接和TCP连接的关系,布布扣,bubuko.com

时间: 2024-11-06 17:04:21

socket连接和TCP连接的关系的相关文章

如何在socket编程的Tcp连接中实现心跳协议

心跳包的发送,通常有两种技术 方法1:应用层自己实现的心跳包 由应用程序自己发送心跳包来检测连接是否正常,大致的方法是:服务器在一个 Timer事件中定时 向客户端发送一个短小精悍的数据包,然后启动一个低级别的线程,在该线程中不断检测客户端的回应, 如果在一定时间内没有收到客户端的回应,即认为客户端已经掉线:同样,如果客户端在一定时间内没 有收到服务器的心跳包,则认为连接不可用. 方法2:TCP的KeepAlive保活机制 因为要考虑到一个服务器通常会连接多个客户端,因此由用户在应用层自己实现心

HTTP协议系列四—HTTP连接(TCP连接)

http: Keep-Alive 和 非 Keep-Alive http://www.360doc.com/content/18/0108/22/44856983_720346207.shtml http://www.cnblogs.com/skynet/archive/2010/12/11/1903347.html 原文地址:https://www.cnblogs.com/mzyc/p/10654538.html

图说使用socket建立TCP连接

在网络应用如火如荼的今天,熟悉TCP/IP网络编程,那是最好不过.如果你并不非常熟悉,不妨花几分钟读一读. 为了帮助快速理解,先上个图,典型的使用socket建立和使用TCP/UDP连接过程为(截图来源戳这里): 下面仅讲述TCP连接建立的过程. (参考资料来自这里) 1. Initial State (初始阶段) o TCP is connection based, ... establishing it is a complex multistage process o initially

【网络协议】TCP连接的建立和释放

转载请注明出处:http://blog.csdn.net/ns_code/article/details/29382883 TCP首部格式 先看TCP报文段的格式,例如以下; TCP报文段首部的前20个字节是固定的,后面有4N字节是依据须要而添加的选项.因此TCP报文段的最小长度为20个字节. 首部固定部分的各字段的意义例如以下: 1.源port和目的port:加上IP首部的源IP地址和目的IP地址,确定唯一的一个TCP连接.另外通过目的port来决定TCP将数据报交付于那个应用程序,从而实现T

TCP连接

#xiaodeng #TCP连接 #HTTP权威指南 83 #HTTP连接时HTTP报文传输的关键通道.编写http应用程序的程序员需要理解http连接的来龙去脉及如何使用这些连接. #TCP连接: #世界上几乎所有的http通信都是tcp/ip承载.客户端应用横须可以打开一条tcp/ip连接,连接到可能运行在世界任何地方的服务器应用程序.一旦连接建立起来,在客户端和服务器的计算机之间交换的报文就不会丢失. #如:http://www.joes-hardware.com:80/power-too

TCP连接状态详解及TIME_WAIT过多的解决方法

TCP建立连接的三次握手过程,以及关闭连接的四次握手过程. TCP建立连接的三次握手过程,以及关闭连接的四次握手过程. 1.建立连接协议(三次握手)(1)客户端发送一个带SYN标志的TCP报文到服务器.这是三次握手过程中的报文1. (2) 服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和SYN标志.因此它表示对刚才客户端SYN报文的回应:同时又标志SYN给客户端,询问客户端是否准备好进行数据通讯. (3) 客户必须再次回应服务段一个ACK报文,这是报文段3. 2.连接

网络基础---TCP连接

TCP协议原理:TCP每发送一个报文段,就启动一个定时器,如果在定时器超时之后还没有收到ACK确认,就重传该报文. 如图所示,数据包由A的缓冲区发往B,B在收到数据包以后,回发一个ACK确认包给A,之后A将该数据包从缓冲区释放.因此,该数据包会一直缓存在A的缓冲区,直到一个ACK确认为止. 在TCP/IP协议中,TCP协议提供可靠的面向连接的服务:三次握手(建立连接)和四次挥手(关闭连接):使用滑动窗口机制进行流量控制: 三次握手的详细图解 所谓三次握手(Three-way Handshake)

python网络连接之tcp通信

#encoding=utf-8# 创建一个 TCP 服务器程序,这个程序会把客户发送过来的字# 符串加上一个时间戳(格式:'[时间]数据')返回给客户.from socket import *from time import ctime host = ''port = 21567bufsiz = 1024addr = (host,port) # ss = socket() # 创建服务器套接字# ss.bind() # 把地址绑定到套接字上# ss.listen() # 监听连接# inf_lo

TCP连接状态变化

文章转自:TCP连接状态变化 TCP连接状态变化 参考文章:TCP连接的状态详解以及故障排查 TCP建立连接--三次握手 CLOSED:起始状态,无任何连接. LISTEN:服务端建立socket之后需要listen进入LISTEN(侦听)模式,侦听来自远方的TCP连接请求. SYN_SENT:客户端建立socket之后需要connect服务器,向服务端发送SYN=j(随机数)申请连接,然后会进入SYN_SENT状态. SYN_RCVD:服务端在** 侦听模式 **下收到SYN后会向客户端回应A