TCP
Tony_Xian
这个作者很懒,什么都没留下…
展开
-
recv recvfrom 区别
recv的recvfrom是可以替换使用的,只是recvfrom多了两个参数,可以用来接收对端的地址信息,这个对于udp这种无连接的,可以很方便地进行回复。而换过来如果你在udp当中也使用recv,那么就不知道该回复给谁了,如果你不需要回复的话,也是可以使用的。另外就是对于tcp是已经知道对端的,就没必要每次接收还多收一个地址,没有意义,要取地址信息,在accept当中取得就可以加以记录了。...转载 2020-05-01 15:59:32 · 861 阅读 · 1 评论 -
TCP报文首部详解
首部固定部分各字段的意义如下:1.源端口和目的端口,各占2个字节。2.序号:占4个字节,序号范围为0到2的32次方-1,序号增加到2的32次方-1之后,下一个序号变为0,在一个TCP连接中传送的字节流中的每一个字节都按顺序编号。首部中的序号字段值指的是本报文段所发送的数据的第一个字节的序号。可对4GB的数据进行编号。在一般情况下可保证当序号重复使用时,旧序号的数据早已通过网络到达终点了...转载 2020-03-30 20:17:36 · 7712 阅读 · 0 评论 -
关于tcp首部数据偏移的问题
占4比特,表示数据开始的地方离TCP段的起始处有多远。实际上就是TCP段首部的长度。由于首部长度不固定,因此数据偏移字段是必要的。数据偏移以32位为长度单位,也就是4个字节,因此TCP首部的最大长度是60个字节。即偏移最大为15个长度单位=15*32位=15*4字节参考文章:http://www.cnblogs.com/zhuyf87/archive/2012/12/29/2838937.h...转载 2020-03-30 20:06:02 · 5440 阅读 · 4 评论 -
Linux(服务器编程):15---两种高效的事件处理模式(reactor模式、proactor模式)
https://blog.csdn.net/qq_41453285/article/details/103001772?request_id=&utm_source=distribute.pc_feed.none-task转载 2020-02-13 16:49:52 · 231 阅读 · 0 评论 -
为什么IO复用要搭配非阻塞IO和应用层buffer
为什么IO多路复用要搭配非阻塞IOselect、poll_wait、epoll_wait返回可读≠read去读的时候能读到。如果不用非阻塞,程序会永远卡在read上。以上情况可能出现在多进程同时监听一个socket,只有一个进程可以accept,别的都会block。假如socket的读缓冲区已经有足够多的数据,需要read多次才能读完,如果是非阻塞可以在循环里读取,不用担心阻塞在read上,等...转载 2020-02-03 20:35:40 · 230 阅读 · 0 评论 -
signal(SIGPIPE,SIG_IGN)问题
当服务器close一个连接时,若client端接着发数据。根据TCP协议的规定,会收到一个RST响应,client再往这个服务器发送数据 时,系统会发出一个SIGPIPE信号给进程,告诉进程这个连接已经断开了,不要再写了。根据信号的默认处理规则SIGPIPE信号的默认执行动作是 terminate(终止、退出), 所以client会退出。若不想客户端退出可以把 SIGPIPE设为SIG_IGN...转载 2020-01-30 16:23:04 · 410 阅读 · 0 评论 -
多个客户端如何同时连接到服务器上的一个端口,比如80?(译)
多个客户端如何同时连接到服务器上的一个端口,比如80?(译)原文:How do multiple clients connect simultaneously to one port, say 80, on a server? [duplicate]平时我们使用ServerSocket指定了某个端口(例如8080),然后多个客户端连接上socket之后就都用这个8080端...转载 2020-01-29 11:30:27 · 651 阅读 · 0 评论 -
面试官,不要再问我三次握手和四次挥手
1. 三次握手三次握手(Three-way Handshake)其实就是指建立一个 TCP 连接时,需要客户端和服务器总共发送 3 个包。进行三次握手的主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备。实质上其实就是连接服务器指定端口,建立 TCP 连接,并同步连接双方的序列号和确认号,交换TCP 窗口大小信息。刚开始客户端处于 Clos...转载 2020-01-11 18:20:17 · 170 阅读 · 0 评论 -
TCP三次握手源码分析
https://www.cnblogs.com/seanloveslife/p/12103830.html转载 2020-01-08 11:23:02 · 164 阅读 · 0 评论 -
为什么服务器突然回复RST
RST产生原因 一般情况下导致TCP发送RST报文的原因有如下3种: 1、 SYN数据段指定的目的端口处没有接收进程在等待。 2、TCP想放弃一个已经存在的连接。 3、TCP接收到一个数据段,但是这个数据段所标识的连接不存在。 对于第一种情况,常见的例子是终端访问服务器未开放的端口,服务器回复RST报文。比如,访问Web服务器的21端口(...转载 2020-01-07 22:06:42 · 3228 阅读 · 0 评论 -
TCP之种种连接异常
1. connect出错:(1) 若TCP客户端没有收到syn分节的响应,则返回ETIMEOUT错误;调用connect函数时,内核发送一个syn,若无响应则等待6s后再发送一个,若仍然无响应则等待24s后在发送一个,若总共等待75s后仍未收到响应则返回本错误;(2) 若对客户的syn响应是rst,则表明该服务器在我们指定的端口上没有进程在等待与之连接,这是一种硬错误,客户一收到rst马上...转载 2020-01-07 21:50:29 · 810 阅读 · 0 评论 -
TCP新手误区
心跳的意义:https://blog.csdn.net/zhangxinrun/article/details/6721495解决粘包问题:https://blog.csdn.net/bjrxyz/article/details/73351248转载 2020-01-02 16:54:56 · 107 阅读 · 0 评论 -
解决粘包问题
https://zhuanlan.zhihu.com/p/77275039转载 2020-01-02 16:35:39 · 89 阅读 · 0 评论 -
TCP与SOCKET的三次握手的对应关系
https://blog.csdn.net/lvyuan30276/article/details/50458572转载 2019-09-01 17:23:00 · 217 阅读 · 0 评论 -
三次握手和四次挥手以及对应实现的API
https://blog.csdn.net/yigui3542/article/details/81099255转载 2019-09-01 17:22:12 · 324 阅读 · 0 评论 -
tcp心跳机制
https://blog.csdn.net/qq_33314107/article/details/80574137转载 2019-07-13 17:36:54 · 1011 阅读 · 0 评论