分类:协议分析与网络编程

6 篇文章

理解TCP协议及其源代码
TCP三次握手理论 三次握手过程 第一次握手 客户端A向服务端B发出连接请求,同步位SYN=1,初始序列seq=x,连接请求报文段不能携带数据,但是要消耗一个序号,这时客户端A进入SYN-SENT(同步已发送状态) 第二次握手 服务端B收到请求报文段之后,向A发送后确认。将同部位SYN和确认位都置为1,确认序号ack=x+1,同时自己选择一个初始序…
从源码角度剖析tcp/ip—ip协议
庖丁解牛,从源码角度来深入tcp/ip。----《TCP/IP详解 卷2:实现》。 一、简介和介绍 ip协议的是tcp和udp的根本,一般我们只需要了解子网划分,路由转发机制即可。但是底层是怎么实现的呢?毫无疑问,一个顶级的服务端工程师应该从根本从把知识点剖析清楚。下面就让我们从源码的角度解剖ip协议。(关于netinet中的函数,现在的linux…
DNS报文格式解析
DNS 分为查询请求和查询响应,请求和响应的报文结构基本相同。DNS 报文格式如图所示。 上图中显示了 DNS 的报文格式。其中,事务 ID、标志、问题计数、回答资源记录数、权威名称服务器计数、附加资源记录数这 6 个字段是DNS的报文首部,共 12 个字节。 整个 DNS 格式主要分为 3 部分内容,即基础结构部分、问题部分、资源记录部分。下面将…
面向报文(UDP)和面向字节流(TCP)的区别
面向报文(UDP)和面向字节流(TCP)的区别 面向报文的传输方式是应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。因此,应用程序必须选择合适大小的报文。若报文太长,则IP层需要分片,降低效率。若太短,会是IP太小。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。这也就是说,应用层交给UDP多长的报文,UD…
端口划分-广播多播
端口划分 端口号的作用,主要是区分服务类别和在同一时间进行多个会话。 举例来说,有主机A需要对外提供FTP和WWW两种服务,如果没有端口号存在的 话,这两种服务是无法区分的。实际上,当网络上某主机B需要访问A的FTP服务时,就要指定目的端口号为21;当需要访问A的WWW服务时,则需要将目的 端口号设为80,这时A根据B访问的端口号,就可以区分B的两…