TCP/IP总略复习

源端口号随机 1024~5000之间。大于5000的端口号为其他服务器预留的,Internet上并不常用的服务。

以太网是一般PC使用的标准,速度10Mb/s,地址是48bit。

环回接口:一般是判断是否是127.0.0.1,就给环回驱动程序,回去了。

有了mac地址,才会有包。没有物理地址,不会向网络里发包。

MTU是出接口上看,以太网是1500,802.3是1492.路径MTU是整个路径上最小的MTU,小于他才不分片。

来回的MTU不一定是相同的。

TTL来回是两个初始值减,原来是时间,现在是跳转数。

127开头都是环回口

0.0.0.0作为源,dhcp

255.255.255.255是全网广播,路由器可以ping。PC不行,当成了主机名。

ARP

地址解析协议,将IP地址转换成MAC地址。

no ip route设备访问任何地址都会做arp请求

地址重叠会让免费arp回应,发现重叠。

 

网桥与路由器区别

网桥是在链路层上对网络进行互连,路由器则是在网络层上对网络进行互连,网桥使得多个局域网(LAN)组合在一起,这样对上层来说是一个局域网。

ICMP是IP协议的附属协议。IP层用它来与其他主机或者路由器交换错误报文和其他重要信息。除了IP,其他程序也可能访问它,比如Ping和Traceroute。

IGMP是Internet组管理协议。用来吧一个UDP数据报多播到多个主机。

ICMP

传递差错报文,以及其他需要注意的信息。

所有报网前4字节结构一样,类型字段15个不同值,比较重要的有:

8请求,0为回答,3不可达,代码为各种不可达原因,icmp分查询报文(0,8)和差错报文(3)。

icmp校验和即管首部也管数据。

比如不可达时,icmp报文除了ip头,icmp头,还有造成不可达数据包的ip头以及前8字节。为什么包含前八字节,因为端口号可以告诉哪个app造成不可达,前八个字节包含tcp或者udp的端口号。

差错报文,广播,多播,不是IP分片的第一个分片(后面没端口号),源地址不是单个主机的数据报都不会产生差错报文。

各种主要不可达,类型字段为3:

ping

 

 

IP记录路由选项

就是出路由来回都记录。因为空间限制,只能记录9跳。

Traceroute程序

可以看到ip数据从一个到另一个ip经历的所有路由。通过udp端口每发一个增加一,ttl也每发一个加一,当到了目的地查端口号,因为端口很大,目的地返回一个端口不可达icmp。最后就实现了。

ip源站路由选项

思想时由发送者指定路由采取两种:

1,严格的源路由选择,指定必须采取确切路由,

2,指定ip清单,但是不管2个地址是否通过其他路由器

IP选路

选路是IP最重要功能之一

下图描述一个路由守护程序(动态路由修改),通常是一个用户进程,unix系统中大多数普通的路由程序都是路由程序和网关程序,路由表经常被IP访问,但是被路由守护程序更新频率低得多,当收到ICMP重定向报文,路由表要被更新。

 IP搜索路由表的步骤:

1,搜索匹配的主机地址

2,搜索匹配的网络地址

3,搜索默认表项(默认表项一般在路由表中被指定为一个网络表项,网络号为0)

icmp重定向差错

假定主机发送ip数据报给R1,R1是该主机默认路由,R1收到数据报检查路由表,发现R2是发送改数据报的下一站,当它吧数据发送给R2时,R1检测到它正在发送的接口与数据报到达接口是相同的(即主机和两个路由器算账的LAN),这样就给路由器发送重定向报文给原始发送端提供了线索,R1发送了一封ICMP重定向报文给主机,告诉它以后数据包发送给R2

UDP

简单的面向数据报的传输层协议,每个输出操作都产生一个UDP数据报,组成一份待发送的IP数据包,与面向流字符协议不同,应用程序产生的全体数据与正在发送的单个IP数据报可能没事什么联系。UDP不提供可靠性传输。

tcp和UDP端口号是互相独立(比如514分别为rsh和syslog),经管相互独立,但是提供相同知名服务,经常选择相同端口号。

UDP校验和覆盖UDP首部和UDP数据(ICMP和TCP也是IP首部校验和之覆盖IP首部)。可以是奇数但是必须补齐偶数长度。校验和包括首部,数据,还有个伪首部,是32位目的和源ip地址,协议号等。校验和可选。

UDP有三大应用:

1,查询类,如DNS

2,实时流量(语音视频)

3,传输数据(TFTP不靠谱)

 

IP分片

IP把MTU与数据报长度进行比较。

如果需要分配,分配可以发生在原始发送端主机,也可以在中间路由器上,把一份IP数据报分片后只有到了目的地才组装,组装由目的端IP层完成,目的是使分片重组对传输层TCP和UDP透明,已分片的数据报可能再次分片。

当ip数据报被分片时,每个片都成为独立分组,具有自己ip首部,在选择路由时与其他分组独立,所以到目的端可能会失序,但是在IP首部中有足够的信息让接收端能正确组装这些数据,但是丢失一片也要重传整个数据报,IP层本身没有超时重传机制,通过高层TCP实现此功能,TCP在超时后会重发整个TCP报文段,该报文段对应一份IP数据报。

分片时,除了最后一片,数据部分要是8的整数倍。协议类型端口号只能在第一片。

最大UDP数据报长度

IP数据报的最大长度65535字节(由IP首部16bit总长度字段限制),udp最大长度就是再减去ip头部长度。

但是会收到2个限制因素:第一,应用程序受到其接口的限制,socketAPI提供了一个可供应用程序调用的函数,以设置接收和发送缓存的长度,第二源自TCP/IP的内核实现的限制。所以取决与编程接口和实现。

大多数系统某一时刻只允许一个程序端点与某个本地IP地址及UDP端口号相关联。

广播与多播

三种IP地址:单播地址,广播地址,多播地址

广播多播仅应用于UDP。

TFTP

适合只读存储器,因为代码少。

TCP

面向连接的,可靠的字节流服务。面向连接意味两个tcp应用彼此交换数据之间要建立一个TCP连接。

应用数据被分割成TCP认为最适合发送的数据块。TCP确认报不是立即发送,通常推迟几分之一秒,有时跟着下此数据一起发。

TCP保持首部和数据的校验和。

TCP由IP传输,所以可能失序,如果必要,TCP将对数据重新排序,交给应用层。

TCP有流量控制,TCP每次连接一方都有固定大小缓冲区,TCP的接收端只允许另一端发送接收端缓冲取所能接纳的数据,防止主机致使较慢主机缓冲区溢出。

TCP的字节流

传输时候,顺序一样,但是可能会把大小切片改变。

也是最大60个字节

序号标识从TCP发端到TCP接收端发送到数据字节流,表示在这个报文段中的第一个数据字节,用来确认传输字节数,SYN标志也消耗一个序号,FIN标志也消耗一个序号。

TCP可以表述为一个没有选择确认或否认的滑动窗口协议。

流量控制由连接的每一端通过声明窗口大小来确定

RST位:一般无论何时一个报文段发往基准连接出现错误,TCP都会发出一个复位报文段(基准的连接指由目的IP地址和目的端口号以及源IP地址和端口指明的连接),就是如果udp连接服务器没存在端口,服务器提供一个icmp端口不可达,tcp情况,服务器发送rst重置号。

异常终止一个连接

有可能发送复位报文段而不是FIN来中途释放一个连接,有时称为异常释放,有两个优点,1,丢弃任何待发送的数据并立即发送复位报文段,2RST接收方会区分另一端执行的是异常关闭还是正常关闭,应用程序使用API必须提供异常关闭而不是正常关闭的手段。

TCP选项

要4字节对齐,不足填充补齐。

MSS

TCP交互数据流

按照分组数量计算,一半TCP报文段含成块数据(FTP,电子邮件,Usenet新闻),另一半是交互数据(Telnet和Rlogin),按字节计算,成块数据与交互数据比例,9比1

通常TCP收到数据不立即发送ACK,以便将ACK与需要沿该放下发送的数据一起发送,绝大多数采用延时200ms。

窗口大小通告

TCP成块数据流

TFTP使用停止等待协议。数据发送方在发送下一个数据块之前需要等待接收对已发送数据确认。TCP所使用的被称为滑动窗口协议,允许发送方在停止并等待确认前可以连续发送多个分组,由于发送方不必每发一个分组停下来等待确认,因此该协议可以加速数据的传输。

正常数据流

正常数据流使用隔一个确认的策略,线路分组依赖许多无法控制因素如TCP的实现,操作系统调度等,对于2个TCP而言,没有一种单一的,正确的方法交换给定数量的数据。

滑动窗口

窗口大小与确认序号对应的

该窗口表明多少数据可以立即被发送。

发送方没必要发全窗口大小。

push标志

发送方使用该标志通知接收方将所有收到的数据全部提交给进程,这里数据包括与push一起发送的数据,和已经被接收的进程收到的其他数据。

慢启动

不在同一个局域网,可能有慢速网络,该算法通过观察到新分组进入网络的速率应该与另一端返回确认速率相同而进行工作。

慢启动增加了一个窗口:拥塞窗口,cwnd(这个是发送方的,前面通告窗口是接收方的)。当与另一个网络的主机建立TCP连接时,拥塞窗口被初始化为一个报文段(即另一端通告的报文段大小)。每收到一个ACK,拥塞窗口增加一个报文段,发送方取拥塞窗口与通告窗口中最小值作为发送上限。

发送一个分组的时间

取决于传播时延和发送时延。

TCP超时和重传

TCP通过在发送时设置一个定时器解决数据确认和丢失,当定时器溢出没收到确认,就重传,所以关键在于超时和重传的策略,即怎样决定超时间隔和确定重传频率。

TCP定时器有四个:

RTT变化范围很大,使这种方法不太实用。

拥塞避免算法

ICMP差错

保活定时器

不过最好由应用程序确认保活,而不是tcp

应用层

telent:端口23,ssh端口22

FTP:端口20和21

TFTP:端口69

SMTP:端口25

POP3:端口110

HTTP:端口80

SNMP:UDP 161,162

DNS:TCPUDP53

DHCP:端口67

IP地址

网络位:192.168.1.0 255.255.255.0 /24

主机位:

和主机位

分类

A:0xxxxxxx.hhhhhhhh.hhhhhhhh.hhhhhhhh前8位为网络位,后24主机位,网络位第一位为0

所以最小00000000,最大01111111=127

0保留用于默认路由,127保留用于诊断。

所以A类允许2^24-2=16777214个主机ip,去除的两个,0表示网络地址,任意,全1为广播地址,全部。

B:10xxxxxx.xxxxxxxx.hhhhhhhh.hhhhhhhh,前16位为网络位,所以128到191,一共2^14=16384个B类地址,2^16-2个ip

C:110xxxxx.xxxxxxxx.xxxxxxxx.hhhhhhhh,范围就是1100000到11011111为192到223

子网划分

为什么划分子网?

不灵活,使用ABC地址浪费大量地址

 

参考视频

乾颐堂现任明教教主秦柯 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值