TCP/IP协议卷一(一)

概述

TCP/IP协议不是一个单个的协议,而是一个协议族。
互联网进行通信时,需要相应的网络协议,TCP/IP 原本就是为使用互联网而开发制定的协议族。因此,互联网的协议就是 TCP/IP,TCP/IP 就是互联网的协议。

分层

OSI七层模型:应用层,表示层,会话层,传输层,网络层,物理链路层,物理层。
TCP/IP四层协议模型:应用层,传输层,网络层,链路层。

互联网的地址

互联网上的接口都有一个唯一的Internet地址(IP地址),IP地址长32bit。
IP地址分为五类,并且有不同的格式和范围:

类型范围
A类0.0.0.0~127.255.255.255
B类128.0.0.0~191.255.255.255
A类192.0.0.0~223.255.255.255
A类224.0.0.0~239.255.255.255
A类240.0.0.0~247.255.255.255
域名系统

域名系统(DNS)是一个分布式的数据库,用来存储IP地址与主机名之间的映射关系

封装

应用程序用TCP传数据的时候,数据被送入协议栈中。用户数据经由 应用程序,TCP,IP,以太网驱动程序进行层层封装来生成数据报文。

端口号

TCP和UDP使用16bit的端口号来识别应用程序,理论上有2^16(0~65535)个端口号。
查看unix系统下的端口号:grep telnet /etc/services

IP:网际协议

特点

不可靠,无连接

IP首部

普通IP首部由20个字节组成,包含4位版本号,4位首部长度,8位服务类型,16位总长度,16位标识,3位标志,13位片偏移,8位生存时间,8位协议,16位首部检验和,32位源IP之地,32位目的IP地址

IP路由选择

IP层在内存中有一个路由表,当收到一份数据包并进行发送时,都会对该表进行一次搜索。首先会查看目的IP地址是否为本机的IP地址之一或者IP广播地址,如果是,那么数据表就会被送到由IP首部协议字段所指定的协议模块进行处理,如果不是这些地址,IP层会被设置成路由器的功能,对数据报进行转发。

所有IP路由选择只为数据报传输提供下一站路由器的IP地址,它假定下一站路由器比发送数据报的主机更接近目的,而且下一站路由器与主机是直接相连的。

路由表中的每一项都包含下面这些信息:

  • 目的IP地址
  • 下一站的IP地址
  • 标志
  • 为数据报的传输指定一个传输接口

IP路由选择主要完成的功能:

  • 搜索本机路由表,寻找能与目的IP地址完全匹配的条目
  • 搜索路由表,寻找能与目的网络号想匹配的条目
  • 搜索路由表,寻找名为“默认”的条目

UDP:用户数据报协议

概述

UDP是一个简单的面向数据报的运输层协议。

UDP是不可靠的,它把应用程序传给IP层的数据发送出去,但是并不保证他们能够到达目的地。

UDP首部

UDP首部由8字节组成,分别为16位源端口号,16位目的端口号,16位UDP长度,16位UDP检验和。

TCP协议

概述

TCP协议是一个面向连接的协议。

建立和终止连接

在TCP报文中比较重要的字段有:

  1. 序号(Seq),32bit
  2. 确认号(Ack),32bit
  3. 标志位(Flags):共 6 个,即 URG、ACK、PSH、RST、SYN、FIN 等。

建立连接:

  1. 客户端给服务器发送一段TCP报文,标记位为 SYN,表示“请求建立新连接”;序号为 Seq=x(x 一般为 1);随后客户端进入 SYN-SENT 阶段
  2. 服务器端接收到来自客户端的 TCP 报文之后,结束 LISTEN 阶段。并返回一段 TCP 报文。标记位为ACK,SYN,Ack=x+1,Seq=y,服务器进入SYN-RCVD状态
  3. 客户端接收到来自服务器端的确认收到数据的 TCP 报文之后,明确了从客户端到服务器的数据传输是正常的,结束 SYN-SENT 阶段。并返回最后一段 TCP 报文。标志位为ACK,Ack=y+1,随后客户端进入 ESTABLISHED 阶段。
    服务器接收到确认信号之后进入ESTABLISHED阶段,建立连接,开始传输数据。

终止连接:

  1. 客户端发送标志位为FIN,Seq=u,客户端进入FIN_WAIT_1阶段
  2. 服务器收到终止信号,发送标志位为ACK,Ack=u+1,Seq=v,服务器进入CLOSE_WAIT阶段,客户端收到确认信号,进入FIN_WAIT_2阶段
  3. 服务器做好了断开连接的准备后,向客户端发送标记位为FIN,ACK,Ack=v+1,Seq=w ,服务器进入LASK_ACK阶段
  4. 客户端收到服务器准备好的信号后,向服务器发送标记位为ACK,Ack=w+1,Seq=u+1,客户端等待2MSL后关闭连接,服务器收到确认信号后,关闭连接
超时重传

TCP的的超时重传是保证TCP可靠性的一个重要机制。
原理:在发送一个数据以后开启计时器,一定时间内没有收到ACK报文,则重传数据。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编辑推荐 本书是网络构建原型——4.4BSD的建造者的倾力之作,《TCP/IP解析》中的第1,主要讲述TCP/IP协议方面的内容。与其他的TCP/IP书藉的最大不同在于,本书不仅仅讲述了RFCS的标准协议,而且结合大量实例讲述了TCP/IP协议包的定义原因及在各种不同的操作系统中(如Sunos4.1.3、Soloris2.2、AIX3.2.2)的应用与工作方式,这样可以以动态方式讲述TCP/IP的知识,使读者可以轻松掌握TCP/IP的知识:路由协议、寻址协议、组控制协议、简单邮件传输协议等。全书内容实用性强,是在校生学习TCP/IP知识的良师益友。 内容简介  《TCP/IP详解,1:协议》是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。作者用Lawrence Berkeley实验室的tcpdump程序来捕获不同操作系统和TCP/IP实现之间传输的不同分组。对tcpdump输出的研究可以帮助理解不同协议如何工作。 本书适合作为计算机专业学生学习网络的教材和教师参考书。也适用于研究网络的技术人员。 作者简介 W.Richard Stevens(1951-1999)是一位非常受人尊敬的专家,除了《TCP/IP详解》三本外,他还有其他两部最为畅销的作品:《UNIX环境高级编程》和《UNIX网络编程》(两本)。 目录 译者序 前言 第1章 概述 1 1.1 引言 1 1.2 分层 1 1.3 TCP/IP的分层 4 1.4 互联网的地址 5 1.5 域名系统 6 1.6 封装 6 1.7 分用 8 1.8 客户-服务器模型 8 1.9 端口号 9 1.10 标准化过程 10 1.11 RFC 10 1.12 标准的简单服务 11 1.13 互联网 12 1.14 实现 12 1.15 应用编程接口 12 1.16 测试网络 13 1.17 小结 13 第2章 链路层 15 2.1 引言 15 2.2 以太网和IEEE 802封装 15 2.3 尾部封装 17 2.4 SLIP:串行线路IP 17 2.5 压缩的SLIP 18 2.6 PPP:点对点协议 18 2.7 环回接口 20 2.8 最大传输单元MTU 21 2.9 路径MTU 21 2.10 串行线路吞吐量计算 21 2.11 小结 22 第3章 IP:网际协议 24 3.1 引言 24 3.2 IP首部 24 3.3 IP路由选择 27 3.4 子网寻址 30 3.5 子网掩码 32 3.6 特殊情况的IP地址 33 3.7 一个子网的例子 33 3.8 ifconfig命令 35 3.9 netstat命令 36 3.10 IP的未来 36 3.11 小结 37 第4章 ARP:地址解析协议 38 4.1 引言 38 4.2 一个例子 38 4.3 ARP高速缓存 40 4.4 ARP的分组格式 40 4.5 ARP举例 41 4.5.1 一般的例子 41 4.5.2 对不存在主机的ARP请求 42 4.5.3 ARP高速缓存超时设置 43 4.6 ARP代理 43 4.7 免费ARP 45 4.8 arp命令 45 4.9 小结 46 第5章 RARP:逆地址解析协议 47 5.1 引言 47 5.2 RARP的分组格式 47 5.3 RARP举例 47 5.4 RARP服务器的设计 48 5.4.1 作为用户进程的RARP服务器 49 5.4.2 每个网络有多个RARP服务器 49 5.5 小结 49 第6章 ICMP:Internet控制报文协议 50 6.1 引言 50 6.2 ICMP报文的类型 50 6.3 ICMP地址掩码请求与应答 52 6.4 ICMP时间戳请求与应答 53 6.4.1 举例 54 6.4.2 另一种方法 55 6.5 ICMP端口不可达差错 56 6.6 ICMP报文的4.4BSD处理 59 6.7 小结 60 第7章 Ping程序 61 7.1 引言 61 7.2 Ping程序 61 7.2.1 LAN输出 62 7.2.2 WAN输出 63 7.2.3 线路SLIP链接 64 7.2.4 拨号SLIP链路 65 7.3 IP记录路由选项 65 7.3.1 通常的例子 66 7.3.2 异常的输出 68 7.4 IP时间戳选项 69 7.5 小结 70 第8章 Traceroute程序 71 8.1 引言 71 8.2 Traceroute 程序的操作 71 8.3 局域网输出 72 8.4 广域网输出 75 8.5 IP源站选路选项 76 8.5.1 宽松的源站选路的traceroute程序示例 78 8.5.2 严格的源站选路的traceroute程序示例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值