hard noproc 65535 soft nofile 65535 hard nofile 65535 **生产环境内核参数调整:/etc/sysct.conf 解释 LINUX...简单抗D LINUX性能评估 vmstat 2 10 sar -u 2 10 CPU性能 free -m 性能指标 iostat -d 1 10 磁盘IO性能 sar -d 1 10
Linux下的tcp编程中,第一步就是要创建socket,本文将从源码角度看下socket是如何被创建的。...本文使用的linux内核版本为 ➜ bionic git:(ffdd392b8196) git remote get-url origin git://git.launchpad.net/~ubuntu-kernel.../ubuntu/+source/linux/+git/bionic ➜ bionic git:(ffdd392b8196) git status HEAD detached at Ubuntu-4.15.0...// include/linux/fs.h struct file_operations { ......有关epoll的源码分析,请参见 Linux epoll 源码分析 1 Linux epoll 源码分析 2 Linux epoll 源码分析 3 5.
// net/socket.c SYSCALL_DEFINE3(bind, int, fd, struct sockaddr __user *, umyaddr...
该方法先通过fd找到对应的file,再调用filp_close方法对file进行close。
// net/socket.c SYSCALL_DEFINE2(listen, int, fd, int, backlog) { struct socket...
之前的文章已经分析了tcp的建立过程以及tcp读和写,下面我们继续看下shutdown方法。
// include/linux/fs.h static inline ssize_t call_write_iter(struct file *file, struct kiocb *kio,
3. 将sock->type赋值给newsock->type,type值为SOCK_STREAM。
之后又调用call_read_iter方法,传入这些新的参数,继续执行read逻辑 // include/linux/fs.h static inline ssize_t call_read_iter
由第一篇文章可以知道,sock->ops->connect指向的方法为inet_stream_connect。
前两篇文章中我们讲到,shutdown和close方法会发送fin消息给对方,开始tcp连接的关闭流程,现在我们从源码角度看下tcp连接关闭的具体过程,以及中间...
根据以上标准,OSI参考模型分为(从上到下): 物理层->数据链路层->网络层->传输层->会话层->表示层->应用层。 1)物理层涉及在信道上传输的原始比特流。...其中: 1)TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。
github链接:https://github.com/RiceChen/Linux-process-communication.git,记得加个star。
在上一篇文章中我们讲到,connect方法会发送syn消息给服务端,之后客户端会进入TCP_SYN_SENT状态。
参考: 《Linux C 编程一站式学习》 《TCP/IP详解 卷一》
通过学习 TCP/IP 基础, 并总结相关笔记 和 绘制思维导图 到博客上, 对 TCP/IP 框架有了大致了解, 之后开始详细学习数据链路层的各种细节协议, ...
联系linux里面的ifconfig -a命令,这个命令通常会得到如下的结果 eth0 Link encap:Ethernet HWaddr 00:01:4A:03:5B:ED inet addr:192.168.11.2...尽管在大多数情况下,错误的包传送应该给出ICMP报文,但是在特殊情况下,是不产生ICMP错误报文的。如下 1....通常会ping一下这个网站。ping会回显出一些有用的信息。...这些协议又可以根据数据吞吐量来大致分成两大类:(1)交互数据类型,例如telnet,ssh,这种类型的协议在大多数情况下只是做小流量的数据交换,比如说按一下键盘,回显一些文字等等。...要注意的是:重传的情况下,RTO不用上面的公式计算,而采用一种叫做“指数退避”的方式。例如:当RTO为1S的情况下,发生了数据重传,我们就用RTO=2S的定时器来重新传输数据,下一次用4S。
Host Requirements RFC声明,UDP检验和选项在默认条件下是打开的。它还声明,如果发送端已经计算了检验和,那么接收端必须检验接收到的检验和(如接收到检验和不为0)。...Host Requirements RFC提供了3个不使用保活定时器的理由: 在出现短暂差错的情况下,这可能会使一个非常好的连接释放掉; 它们耗费不必要的带宽; 在按分组计费的情况下会在互联网上花掉更多的钱...在任何一种情况下,客户的TCP都没有响应。服务器将不能够收到对探查的响应,并在 75秒后超时。 服务器总共发送10个这样的探查,每个间隔75秒。...在第1种情况下,服务器的应用程序没有感觉到保活探查的发生。 TCP层负责一切。这个过程对应用程序都是透明的,直至第 2、3或4种情况发生。...在第2种情况下,差错是诸如“连接超时”之类的信息,而在第 3种情况则为“连接被对方复位”。第4种情况看起来像是连接超时,也可根据是否收到与连接有关的 ICMP差错来返回其他的差错。
最近读完了《图解TCP/IP》,做一下总结加深记忆,后续会写几篇关于TCP/IP的文章。...IP模块的处理 TCP模块的处理:首先会计算一下校验和,判断数据是否被破坏。然后检查是否在安装序号接收数据。最后检查端口号,确定具体应用程序。
犹豫了一下,交换机又有了一个想法,它把主机A发给主机B的消息以广播的形式发给了所有连在它身上的主机。主机C也收到了这条消息,但是主机C检查了一下目的地址,不是发给自己的,就果断丢弃了这条消息。...(寻址) 现在想一下前面我们说到的MAC地址,MAC地址是一台主机的身份象征。...既然说到了停止等待协议,那我就不得不补充一下ARQ协议。是什么ARQ协议了?...下面先简单解释一下UDP协议。...下面可以看一下知乎上是怎么说的,我找了一条讲的最形象,可以结合着理解一下。 知乎:TCP协议的滑动窗口具体是怎样控制流量的?
领取专属 10元无门槛券
手把手带您无忧上云