
TCP/IP
文章平均质量分 79
firefoxbug
这个作者很懒,什么都没留下…
展开
-
自己动手学TCP/IP--TCP连接三次握手
TCP是面向连接的协议,面向连接的意思就是在连接的基础上实现数据的传输。TCP面向连接保证了它在通信过程中的可靠性。TCP头部是20个字节,详细的报文格式和各个字段的解释可以看下面:在TCP通信之前,建立连接的过程被称为三次握手,下面是wireshark抓出来的图。1.第一次握手:客户端发送SYN标志,序列号seq(随机生成,图中序列号是0是wireshark做了相对处原创 2012-08-05 21:41:27 · 3643 阅读 · 0 评论 -
自己动手学TCP/IP--traceroute程序
traceroute程序主要是能列出到达目标主机所经过的路由。traceroute最简单的基本用法是:traceroute hostname。traceroute程序的设计是利用ICMP及IP header的TTL(Time To Live)栏位(field)。首先,traceroute送出一个TTL是1的IP datagram到目的地,当路径上的第一个路由器(router)收到这个d原创 2012-08-05 10:39:24 · 12548 阅读 · 0 评论 -
自己动手学TCP/IP--ICMP(ping报文)
ping是ICMP的一种,是用来检查网络是否通畅或者网络连接速度的命令。报文长度(98bytes)= 以太网头(14bytes)+ IP头(20bytes)+ICMP头(8)+ ICMP数据内容(56字节)报文格式ICMP回显请求报文类型是8(ICMP_ECHO),标识符字段是进程的ID,用于接受应答包的处理,序列号是不断加1,ICMP数据内容选项则包含了发送包时系统的时间。I原创 2012-07-22 22:07:50 · 31056 阅读 · 6 评论 -
自己动手学TCP/IP--以太网帧
数据链路层主要的功能把网络层的包封装成帧对帧的校验和确认流量的控制数据链路层生成以太网帧,以太网帧的主要格式如下。太网帧的传输大小是由传输媒介决定的,数据帧的大小是64—1518。帧头14个字节,分别是目标MAC地址(6个字节)+源MAC地址(6个字节)+协议类型(2个字节),帧尾是32位的CRC冗余校验。对于两个字节协议字段,0原创 2012-07-19 14:43:43 · 8057 阅读 · 0 评论 -
自己动手学TCP/IP–http协议(http报文头)
在前面的一篇文章中,简单了介绍了HTTP报文格式,详情参考http://www.firefoxbug.net/?cat=47。这里大概介绍下基本的,常见的HTTP包头格式。POST /report/getComment.jsp HTTP/1.1Host: yeeg.comConnection: keep-aliveContent-Length: 161Origin: http:原创 2012-07-11 00:13:42 · 12242 阅读 · 0 评论 -
accept()函数
今天在优化Web服务器的时候发现了一个问题,抓包的时候看了下,这是chrome处理的过程,发起的连接一看已经有很多次三次握手了,那不是有很多个连接了。但是我的web服务器是单线程的啊?并且是阻塞的,按理说每次都应该阻塞在accept那里,为什么会建立这么多次连接了呢?仔细想想,协议栈里面是存在一个请求队列的,listen()函数就是把请求的socket放到队列中,而原创 2012-07-08 22:02:29 · 3160 阅读 · 0 评论 -
自己动手学TCP/IP–http协议(http报文格式)
HTTP(HyperText Transport Protocol,超文本传送协议)HTTP请求报文http请求数据包的格式:头部(request line + header)+ 数据(data)头部和数据包体通过一个空行来隔开,头部的格式主要包括请求行+请求头部。如下图请求行请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们原创 2012-06-19 17:13:10 · 14393 阅读 · 2 评论 -
自己动手学TCP/IP–tftp协议
TFTP(Trivial File Transfer Protocol,简单文件传输协议)1.tftp的服务端口号是692.tftp是基于udp协议的3.tftp是明文传输的,是一种比较轻量型的协议,一般用于bootloader加载内核TFTP工作流程服务端开启tftp服务,tftp是一种stand_alone服务,不是常驻内存的,是在有需要的时候才去调用的原创 2012-06-11 12:09:19 · 10797 阅读 · 0 评论