tcp-ip

tcp-ip 测试网络 所有ip均从140.252开始编址
image

数据进入协议栈的封装过程

网络层作用包含的协议
应用层负责处理特定的应用细节FTP(文件传输协议), SMTP(简单邮件协议),TELNET(远程登录),SNMP(简单网络管理协议)等
运输层提供端到端的服务TCP,UDP等
网络层提供点到点的服务,处理分组在网络中的活动,如分组的选路IP,ICMP,IGMP等
数据链路层处理与电缆的物理接口ARP, RARP ,SLIP(串行链路ip),ppp(点对点协议)等

链路层

链路层的数据封装格式

IEEE802.2/802.3(RFC 1042) 和以太网的封装格式(RFC 894)

作用:

  1. 为ip模块发送和接收数据
  2. 为ARP模块发送ARP请求和接收ARP应答
  3. 为RARP发送RARP请求和接收RARP应答

串行链路层协议:1. SLIP 2. PPP

802定义的2字符的有效长度的值和以太网定义的类型值无一相同,这样就可以分辨两种帧格式的不同。

PPP相对于SLIP的优点
  1. PPP支持在单根串行线路上运行多种协议,不只是ip协议
  2. 每一帧都要循环冗余检验(CRC)
  3. 通信双方可以进行IP地址的动态协商(使用ip网络控制协议)
  4. 和CSLIP类似,对tcp和ip报文首部进行压缩
  5. 链路控制协议可以对多个数据链路选项进行设置

IP:网际协议

ip数据报格式及首部中的各个字段

IP数据报首部有20字节(160bit),其中包含:
1. 版本(4bit):目前的版本是4,所以称为ipv4
2. 首部长度(4bit):5 目前没什么用
3. 服务类型(TOS 8bit)包括:
1. 3bit的优先权子字段(目前已忽略)
2. 4bit的TOS字段:最小时延,最大吞吐量,最高可靠性,最小费用(详见图3-2)
3. 1bit未用设置为0
4. 总长度(16bit):字节数 因为是16位的所以支持的最大值是65535,但是一般也到不了这么大就会分片。
5. 标识(16bit):唯一的标识主机发送的每一份数据报。
6. 标志字段(3bit)
7. 片偏移(13bit)
8. 生存时间(8bit):TTL 初始值有源主机设置 32或64
9. 协议(8bit):用来标识那个协议向ip传送数据
10. 首部检验和(16bit):它不对后面的数据进行计算,只是计算首部
11. 32位源IP地址
12. 32位目的IP地址

ARP协议

ARP请求格式
图中标的都是字节数

ARP协议:IP地址->硬件地址

RARP协议

RARP协议:硬件地址-> IP地址

ICMP协议 Internet控制报文协议

作用:它传递差错报文以及其他需要注意的信息。ICMP报文通常被IP层或更高层协议(TCP或UDP)使用。一些ICMP报文把差错报文返回给用户进程。
ICMP报文类型

ping程序

ping程序是利用的ICMP的回显请求和回显应答报文,而不用经过传输层。ping服务器一般在内核中实现ICMP的功能。
ping所利用的ICMP回显请求和回显应答报文格式

traceroute 程序

traceroute程序是利用的TTL来记录路由的,第一次发送TTL为1的报文,遇见第一个路由,TTL-1变成0,就会丢弃该报文,并发回一份超时的ICMP报文。
当到达目的ip时,traceroute是发送一份==UDP数据报==给目的主机,但是设置了一个木可能的UDP端口号,这样就使目的主机发回一个“端口不可达的错误”。

traceroute比ping -R好的地方:

  1. 不是所有的路由器都支持记录路由选项
  2. 记录路由一般是单向的选项。发送端设置了该选项,那么接收端不得不从收到的IP首部中提取所有的信息,然后全部返还给发送端。
  3. 最重要的原因:因为ping -R命令是把IP放在了IP数据报的首部的选项中,ip首部中的留给

traceroute使用ICMP的报文

image

IP选路(静态选路)

netstat -rn
路由表
flags:
U: 该路由可以使用
G: 该路由是个网关(路由器)。如果没有设置该标志,说明目的地址是直接相连的。
H: 该路由是到一个主机,也就是说,目的地址是一个完整的地址。若没有设置该标志,说明该路由是到一个网络,而目的地址是一个网络地址:一个网络号,或者网络号与子网号的结合。
D: 该路由是由重定向报文创建的
M: 该路由已被重定向报文修改

IP通过路由表选路,路由表的生成方式:
在配置接口时,以默认的方式生成路由表项,并通过route命令增加表项(通常从系统自引导程序文件),或是通过ICMP重定向生成表项(通常是在默认方式出错的情况下)。

动态选路协议

所谓动态选路协议就是路由器之间互相交流各自的路由表,用来完善自己的路由表所用到的协议。它用于路由器之间的通信。
IGP(内部网关协议):1. RIP(路由信息协议),OSPF(开放最短路径优先)
EGP(外部网关协议)

RIP路由信息协议

RIP报文包含在UDP数据报中。

图10-2
RIP-1 报文格式
图10-10 RIP-2报文格式
RIP路由协议是利用跳数来选择路由的。由于每个路由器都发送器路由表给临站,因此,可以判断在同一个自治系统AS内到每个网络的路由。==如果在该AS内从一个路由器到一个网络有多条路由,那么路由器选择跳数最小的路由器,二忽略其他路由。==

OSPF(开放最短路径优先)

==OSPF是个一个链路状态协议==

BGP(边界网关协议)

==使用tcp数据报来进行进行BGP路由表的交换==

UDP

每次运行程序时,源端的UDP端口号都会发生变化。

IP分片

分片可以发生在原始发送端主机上,也可以发生在中间路由器上。在把一个数据报分片以后,只有达到目的地才进行重新组装。重新组装由目的端的IP层来完成,其目的是使分片和重新组装过程对运输层(TCP和UDP)是透明的。

标志字段中有一个比特称作“不分片”位。如果将这一比特置1,IP将不对数据报进行分片。相反把数据报丢弃并发送一个ICMP差错报文(“需要进行分片但设置了不分片比特”),给起始端

对于UDP数据来说,其端口号信息只是放在第一个切片中。==任何运输层首部只出现在第1片数据中==

DNS

它是位于应用层,DNS发送的是UDP

DNS的报文格式

TCP

tcp首部
其中6个标志比特:

URG紧急指针(urgent point)有效
ACK确认序号有效
PSH接收方应该尽快将这个报文段交给应用层
RST重建链接
SYN同步序号用来发起一个链接
FIN发送端完成任务

三次握手(建立连接)

client—(SYN)—>server;//客户端发送SYN和32位序号给server
server—(SYN)(ACK)—>client;//server接收到client的SYN标志,然后sever向client发送server的SYN标志,server的序号,ACK标志,和确认序号(client的序号+长度)
client—(ACK)—>server;//接收到server的回应,向server发送自己已经接收到了server的确认,即ACK,和确认序号(server的序号+长度)。

四次握手(断开连接)

这是由于TCP的半连接造成的(需要分别发送FIN标志和回复ACK)


client---(FIN)--->server;//说明client向server已经传完数据了,要关闭client到server方向的数据传输
server---(FIN的ACK)--->client;//说明收到了client发送过来的FIN
server---(FIN)--->client;//服务器关闭连接,向client发送了FIN
client--->(ACK)--->server;//client接收到server的FIN的确认消息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值