
TCP/IP
文章平均质量分 78
ericming200409
C/C LINUX TCP/IP Python
展开
-
ICMP控制报文协议
通过路由器转发数据报, Internet协议软件提供了不可靠的无连接数据报传送服务。假如路由器不能正确选择路由或传送数据报,或者它检测到一个异常条件影响它转发数据报,路由器需要通知源站点采取措施避免或纠正出现的问题。为了使互联网中的路由器报告差错或提供有关意外情况的信息,在 TCP/IP 中设计了一个特殊用途的报文机制,称为Internet 控制报文协议( Internet Cont原创 2010-04-27 21:40:00 · 3489 阅读 · 0 评论 -
TCP/IP之九:UDP用户数据包协议
至此,我们已经基本讨论完网络接口层和网络层的主要协议,终于来到传输层的领地,传输层从内容复杂性上来讲基本上是TCP一雄称霸,另外还有UDP这个小国,本文我们先讨论一下UDP。 UDP数据报格式如下: (1)Source Port为源端口号;Destination Port为目的端口号;Length为UDP长度,包含头部与数据部分;checksum为校验和。 (2)Checksum的计算:这个校验和是16位反码求和,在进行校验和计算之前,先给UDP数据包加一个伪首部,并在尾部加适当字节的填充,填充原创 2011-05-01 13:51:00 · 3072 阅读 · 0 评论 -
TCP/IP之八:广播、多播与IGMP
广播作为一种给所有主机发数据包的方式,在计算机网络中是必需的,因为很多情况下都需要这样的通信方式,因而广播也很自然地成为了TCP/IP协议栈的一部分。广播是通过将目的端置为特殊的IP地址来实现的,比如以255.255.255.255,会被本地网络中所有主机处理。 TCP/IP协议栈对数据包的过滤处理过程如下图: 每一层都对数据包进行判定,看是接受数据包还是丢弃,如果是目的端为广播地址的数据包,而本机又没有对应的应用程序来处理这样的数据包,则数据包会经过网络接口层->IP层->传输层,最后在传输层被丢原创 2011-05-01 12:51:00 · 3161 阅读 · 0 评论 -
TCP/IP之七:IP结构与IP分片
IP协议是TCP/IP的核心协议之一,正因为它的重要性,整个协议栈才叫做TCP/IP协议栈。它工作在网络层,起着重要的承上启下的作用。它的主要工作是完成IP分组的路由,并在必要时进行IP分片。 IP分组头部格式如下: (1)Version:版本号,说明是IPV4还是IPV6等等;IHL即internet header length, IP分组头部长度,占4bit,以4字节为单位,因为这个字段只占4bit,最大值为15,导致IP首部最长只能为 15*4(即60)字节;Type of Servic原创 2011-04-29 00:12:00 · 4123 阅读 · 1 评论 -
TCP/IP之五:traceroute程序
traceroute程序实现原理:该程序给特定主机发送UDP报文,UDP需要封装在IP分组中进行传输,程序通过依次将IP分组中的TTL设为1,2,3…n,发送不同的UDP报文,这样就会收到中途路由器的ICMP超时报文,从而可以获得路由器的IP地址;同时目的主机UDP端口号被设置为目的主机不可能使用的端口号,这样目的主机收到该UDP报文会返回一个端口不可达的ICMP报文,从而可以判断UDP是否已经到达目的主机。 在我的主机上运行traceroute,输出全是*,也就是说没有受到任何ICMP超时报文,用tcp原创 2011-04-23 23:25:00 · 2950 阅读 · 0 评论 -
TCP/IP之六:路由表与IP选路
路由表: 为了说明路由表的组成,先看下我的主机路由表: 1: 内核 IP 路由表 2: Destination Gateway Genmask Flags MSS Window irtt Iface 3: 10.0.2.0 * 255.255.255.0 U 0 0 0 eth0 4:原创 2011-04-24 00:32:00 · 7967 阅读 · 0 评论 -
TCP/IP之四:ping程序
ping程序利用ICMP协议来判断主机是否可以到达,发送回显请求(类型=8,代码=0),接受回显应答(类型=0,代码=0)。 和所有的其他ICMP查询报文一样,ping程序的ICMP报文必须有标识符字段和序号字段,其格式如下所示: 为了说明ping程序,最好的方式是使用它,先给出我的主机信息,我的主机路由表如下: 1: 内核 IP 路由表 2: Destination Gateway Genmask Flag原创 2011-04-20 22:22:00 · 3688 阅读 · 0 评论 -
TCP/IP之三:ICMP
ICMP,即控制报文协议,是TCP,UDP,IP等主要协议的辅助协议,主要用于传递各种网络信息。 ICMP包格式: 8位类型 8位代码 16位校验和 数据部分(不同类型的ICMP有不同的内容) (1)类型字段和代码字段共同决定ICMP的类型;校验和覆盖整个ICMP报文,因为IP只有对头部的校验,ICMP需要自己去校验收到的ICMP报文是否有错; (2)类型字段和代码字段对应的ICMP描述如下图所示: (3)注原创 2011-04-19 23:10:00 · 2902 阅读 · 0 评论 -
TCP/IP之二:ARP与RARP
ARP协议实现IP地址到物理地址的映射;RARP实现物理地址到IP地址的映射。 ARP/RARP的帧格式如下(图中的数字表示各个域所占的字节数): 以太网目的地址6 以太网源地址6 协议类型2 硬件类型2 协议类型2 硬件地址长度1 协议地址长度1 op2 发送端以太网地址6 发送端IP地址4 目的以太网地址6 目的IP地址4原创 2011-04-14 23:53:00 · 5565 阅读 · 0 评论 -
Linux下抓包工具tcpdump应用详解
TCPDUMP简介(文章出处:http://www.examda.com/linux/fudao/20100316/092501345.html) 在传统的网络分析和测试技术中,嗅探器(sniffer)是最常见,也是最重要的技术之一。sniffer工具首先是为网络管理员和网络程序员进行网络分析而设计的。对于网络管理人员来说,使用嗅探器可以随时掌握网络的实际情况,在网络性能急剧下降的时候,可以通过sniffer工具来分析原因,找出造成网络阻塞的来源。对于网络程序员来说,通过sniffer工具来调试程序。原创 2011-04-14 22:53:00 · 3072 阅读 · 0 评论 -
TCP/IP之一:网络结构与网络接口层
TCP/IP的层次结构如图1所示,是一个四层结构,各层的核心协议都已经包含在途中, 需要指出的是: (1)ICMP虽然是放在网络层,但是ICMP也是需要先封装成IP数据包再交给网络接口层的,同理,ARP和RARP也得先由网络接口层封装成帧,再在物理链路上传输。 (2)各层网络协议之间只要接口固定,彼此之间就可以互相通信,各层协议内部实现是自由的,最能体验这一点的是网络层与网络接口层,虽然一般网络层都是运行IP等协议,但是网络接口层确往往有多种选择,比如以太网、令牌总线、令牌环网、FDDI等。 (3)原创 2011-04-13 23:20:00 · 7226 阅读 · 0 评论 -
以太网原理与最小帧长(傻瓜版)
熟悉了最小帧长,可以说就明白了为什么基于CSMA/CD协议的以太网有网段长度限制,同时也掌握了以太网的精髓。<br />在这之前,我们应该先了解一下CSMA/CD协议。<br /><br /> 什么是CSMA/CD协议(载波侦听多路访问/冲突检测协议)?一个房间有很多人,如果同时说话,就谁也听不清楚别人说什么,于是大家约定了一个机制:每个人在说话之前先听一下有没有其他人说话(载波侦听),如果有,自己就先不说话,如果没有,就说话。如果大家同时发现房间里没有人说话,则同时开口,此时就产生冲转载 2010-06-06 10:40:00 · 1459 阅读 · 0 评论 -
RFC文档
IP:791 TCP:793 UDP:768 ICMP:792 FTP:959 SOCK5:1928 CHAP:1994 SMTP:2821POP3:1957 NTP:1305 HTTP1.1:2616 IMAP:2060 PPP:1661-1663 DHCP:2131OSPF:2328 IPSec:2401-2412 IPv6: 2460 SIP: 3261 RTP:3原创 2010-04-30 20:59:00 · 748 阅读 · 0 评论 -
tcpdump命令
tcpdump命令是一个网络的抓包的命令行,他能指定具体的设备,也能制定具体的五元组进行捕获链路上的数据包。它可以再终端上打印出来也可以将捕获到得数据写入到一个文件,文件的格式是二进制形式,所以,我在打开该文件的时候才用的工具是UltraEdit. tcpdump的命令格式和参数说明: tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文转载 2010-04-27 22:24:00 · 852 阅读 · 0 评论 -
TCP/IP之十:TCP连接的建立与终止
TCP是传输层的重量级成员,也是整个TCP/IP协议栈的重要组成部分,也正因为这点,协议栈的名字里面才有TCP这样的字样。TCP是端到端的通信协议,它向上层应用提供了可靠的,面向连接的服务,为了实现这样的服务,TCP采用了许多其它协议不曾用到的机制,比如序列号、滑动窗口、超时重传、慢启动等等,同步、流量控制等议题在TCP中体现得淋漓尽致。 为了分析TCP的运行机制,我们先来看看TCP的首部结构: (1)前面四个字节和UDP类似仍然是源端口号和目的端口号;Sequence Number:序列号,用于通原创 2011-05-04 20:56:00 · 3149 阅读 · 0 评论