linux网络
yes_I_am
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
TCP 状态转移机
TCP协议可靠传输协议,它的可靠性是有它的面向连接的性质所决定,在TCP连接与断开的时候会出现不同的状态,各种状态之间的存在相互转换,因此便有了状态转移机这个概念,下图就是TCP连接的11种状态之间的转换图 注意在TCP连接过程中没有固定的客户端与服务端的概念,是一个相对的存在,两者可交换身份,服务端可作为发起者,也可作为接受者,客户端同理。 服务端: 1. 客户端主动断开连接:原创 2016-07-17 18:32:37 · 725 阅读 · 0 评论 -
TCP粘包问题及应用层解决方法
TCP为什么会有粘包问题TCP和UDP是存在于传输层的两个网络传输协议,由于UDP的消息传输发送是基于数据包的是有边界的数据,而TCP是基于字节流的数据传输方式,而流的方式就注定了它的无边界性,比如在管道中流动的水就是无边界的,如果把水装入某个容器中在用管道传输,那它就是有边界的,容器的大小就可以看成它的边界。因此UDP可以保证每次收到的都是一个完整的数据包,而TCP缺无法保证,所以才有粘包问原创 2016-07-16 21:30:23 · 3174 阅读 · 0 评论 -
TCP(一 协议)
TCP和UDP一样是基于IP的传输层协议,但是不同于UDP的是TCP是一种面向连接的,可靠的字节流服务。面向连接就是说两个使用TCP协议的用户在数据交互前先要建立一个TCP连接。 TCP的可靠性来源: 1. 应用数据是被分割成TCP认为合适发送的数据块,和UDP不同的是应用程序所产生的数据报长度不变。有TCP传递给IP的信息单位称为报文段。 2. TCP发送一个后启原创 2016-07-20 15:36:37 · 575 阅读 · 0 评论 -
TCP 三次握手四次挥手及理由(二 连接与断开)
TCP是一个面向连接的协议。无论哪一方想另一方发送数据之前,都必须在双方之间建立一条连接。下面就来讨论一下连接的建立和断开。 话不多说,先看一下TCP建立连接时的时序图 如图示,请求端主机A发送一个SYN指明需要建立一条连接(第一次握手)当主机B收到主机A的SYN报文段后,如果允许连接,主机B向主机A返回ACK并发送SYN报文 (第二次握手)主机A在收到主机B的ACK和SYN后向主句B发送AC原创 2016-07-20 17:00:56 · 840 阅读 · 0 评论 -
DNS小结
域名解析系统(DNS Domain Name System)是一种用于TCP/IP应用程序的分布式数据库,它提供主机名字和IP地址之间的转换及有关电子邮件的选路信息。在Unix主机中该解析器主要是通过两个库函数gethostbuname()和gethostbyaddr()来访问的。解析器通过一个或多个域名服务器来完成这种相互转换。在一个应用程序请求打开一个TCP连接或用UDP发送一个数据前,原创 2016-07-18 20:52:45 · 871 阅读 · 0 评论 -
TCP(三 拥塞控制与流量控制)
对于TCP的数据拥堵可以分别在发送方和接收方进行处理,在发送方的处理是拥塞控制,接收方的处理是流量控制,通过这两种机制,有效的确保了TCP的传输效率和可靠性。 拥塞控制 : TCP基于端到端的拥塞控制方法进行网络拥塞控制,为系统提供了一种根据自己的通信确认报文作为反馈信息来感知网络状态的隐式拥塞控制机制。 慢启动: 当TCP发送方准备发送数据时,若发送方的缓存很大,发送方就将缓原创 2016-07-21 11:30:30 · 1175 阅读 · 0 评论 -
在accept前调用fork和accept后调用fork的区别
在linux网络编程中并发服务器的最简单的方式就fork()子进程处理连接,父进程继续等待新的连接完成。而在fork()子进程的顺序上有在accept之前和accept之后两种。通过fork()创建子进程时,子进程继承父进程环境和上下文的大部分内容的拷贝,其中就包括文件描述符表。(1)对于父进程在fork()之前所建立的连接,子进程都会继承,与父进程共享相同的文件偏移量。系统文件表位于系统原创 2016-02-03 10:05:49 · 1997 阅读 · 1 评论
分享