
TCP/IP
Johnblx
征实则效存,徇名则功浅
展开
-
linux 弱网环境模拟
linux 环境,1)tc qdisc adddev eth0 root netem delay 100ms 10ms 将eth0网卡的传输设置为延迟100ms ± 10ms(90 ~ 110 ms之间的任意值)发送, 所有的包2)tc qdisc adddev eth0 root netem delay 100ms 10ms 10% ...原创 2019-12-11 15:10:45 · 1709 阅读 · 0 评论 -
ARP 与 二层交换机
二层交换机:交换机始终依靠着收到的包的MAC地址进行转发。那他就必须要有一个MAC地址与自己端口的映射关系。这个映射关系是通过学习知道的。比如 一台二层交换机有很多口,其中有4个口分别连着A B C D.以最常见的是ARP请求为例。A 广播 ARP 请求, 查询D的MAC地址, ARP 请求发送到 交换机后,交换机就知道了A的MAC地址,也就建立了MAC地址与端口的映...原创 2019-11-27 13:23:12 · 2638 阅读 · 0 评论 -
UDP 丢包
一、主要丢包原因1、接收端处理时间过长导致丢包:调用recv方法接收端收到数据后,处理数据花了一些时间,处理完后再次调用recv方法,在这二次调用间隔里,发过来的包可能丢失。对于这种情况可以修改接收端,将包接收后存入一个缓冲区,然后迅速返回继续recv。2、发送的包巨大丢包:虽然send方法会帮你做大包切割成小包发送的事情,但包太大也不行。例如超过50K的一个udp包,不切割直接通过sen转载 2015-07-06 16:11:17 · 897 阅读 · 0 评论 -
TCP 缓冲区
每个TCP套接口有一个发送缓冲区,可以用SO_SNDBUF套接口选项来改变这一缓冲区的大小。当应用进程调用write往套接口写数据时,内核从应用进程缓冲区中拷贝所有数据到套接口的发送缓冲区,如果套接口发送缓冲区容不下应用程序的所有数据,或者是应用进程的缓冲区大于套接口的发送缓冲区,或者是套接口的发送缓冲区中有别的数据,应用进程将被挂起。内核将不从write返回。直到应用进程缓冲区中的所有数据都拷贝转载 2014-06-23 08:42:19 · 1065 阅读 · 0 评论 -
TCP UDP recv recvfrom
对于这两个函数里面的参数 len只是说,接收socket buffer里面的数据所使用的buffer的大小,如果这个buffer大于数据的大小,是可以的。不会引起阻塞。翻译 2014-04-02 16:59:53 · 1130 阅读 · 0 评论 -
linux socket listen函数
摘要:listen函数使用主动连接套接口变为被连接套接口,使得一个进程可以接受其它进程的请求,从而成为一个服务器进程。在TCP服务器编程中listen函数把进程变为一个服务器,并指定相应的套接字变为被动连接。listen函数在一般在调用bind之后-调用accept之前调用,它的函数原型是:#includeint listen(int sockfd, int bac转载 2014-02-11 10:32:20 · 2063 阅读 · 0 评论 -
linux send 函数
http://bbs.youkuaiyun.com/topics/390701657原创 2014-02-08 11:03:23 · 2004 阅读 · 0 评论 -
TCP发送缓冲区
(6)TCP发送缓冲区每个TCP套接字有一个发送缓冲区,我们可以用SO_SNDBUF套接字选项来更改该缓冲区的大小。当某个应用进程调用write时,内核从该应用进程的缓冲区复制所有数据到缩写套接字的发送缓冲区。如果该套接字的发送缓冲区容不下该应用进程的所有数据(或是应用进程的缓冲区大于套接字的发送缓冲区,或是套接字的发送缓冲区中已有其他数据),该应用进程将被投入睡眠。这里假设该套接字是阻塞的,转载 2013-12-26 11:09:51 · 1156 阅读 · 0 评论 -
TCP的链接,链接超时, 传输数据超时与重传数据
我们都知道TCP发送完一个报文段之后,会等待目的端的确认,如果目的端不确认,那么一段时间超时之后,就会重传。现在的问题是,是不是一直会重传?原创 2013-12-24 15:57:16 · 2728 阅读 · 0 评论 -
TCP 心跳包
TCP心跳的根本原因是:server并不能清楚的知道client是长期处于空闲状态,还是已经掉线了。所以客户端要定时发送消息给服务器,告诉他这个client还活着。如果不发送心跳包,很有可能,server端在长时间接收不到消息后,就叫TCP链接断开了。转载 2013-12-12 14:01:34 · 1191 阅读 · 0 评论