TCP/IP协议,网络工程部分

这个博客参考了许多up主的视频和网上其他的博主的文章,还有我老师的ppt

这里是目录

一、osi七层模型(参考模型)

1.物理层

用不同的媒介(光/电/电磁波)将比特(0和1)传输出去,数据出去之后会经过不同的网络拓扑(所以需要中继器和集线器这样的设备,但还是不够,数据要去到哪台设备是要定向的,因此需要高级一点的网络模型,于是到了数据链路层)

2.数据链路层(数据一跳一跳进行传递)

bit被封装成帧,在封装时加上Mac地址,为了可以通过Mac地址对不同设备进行传输,就出现了交换机(2层)。
还会进行差错检测(防止0变成1,1变成0)和流控制。

数据链路层的三个基本问题
封装成帧
透明传输
差错检测

3.网络层(端到端传输)

为了快速定位,还需要ip地址进行寻址和路由选择。
包是这层数据的名字。
路由器根据包里的ip地址进行路由转发。

4.传输层(服务进层到服务进层的传输)

通过ip和mac地址定位到主机,这层则可以通过端口号来定位主机上的软件服务。
段是这层数据的名字。
传输层负责可靠传输(tcp)[tcp可以分段传输]和不可靠传输(udp)。
通过流量控制保证传输速度。

5.会话层

软件服务可以保存登陆状态,以及同步服务。

6.表示层

不同pc的数据表示不大相同,表示层就可以进行编码和解码。还可以进行加密和解密,文件压缩等。

7.应用层(最接近用户)

会话层,表示层,应用层的数据的名字都叫做"报文"。
常见的应用层协议为http,比如两个应用软件需要进行沟通,我们就可以根据http协议编写应用程序。

具体过程

客户端发送的数据,就是报文,报文来到传输层,加上端口号封装成段,段来到网络层,加上ip地址封装成包,这是如果目标ip地址与源ip地址不是同一个网络下的,则要经过默认网关,但是客户主机最初不知道默认网关的mac地址,无法封装成帧,这时则要通过arp协议广播寻找默认网关的mac地址,把包封装成帧。把帧转发到默认网关,网关查看mac,发现是发给自己的,再解封为包查看ip地址,发现ip地址在另一个网络,就会进行路由转发,最终到达目标网络。

二、TCP/IP协议(四层)

应用层(应用+表示+会话)
传输层
网络层
网络接口层(数据链路层+物理层)

三、IP地址(ipv4)

1、IP地址分类

A:1.0.0.0~126.255.255.255
B:128.0.0.0~191.255.255.255
C:192.0.0.0~223.255.255.255
D:224.0.0.0~239.255.255.255
E:240.0.0.0~255.255.255.255(保留地址)

2、私有地址

10.0.0.0~10.255.255.255
172.16.0.0~172.31.255.255
192.168.0.0~192.168.255.255

直接广播地址:主机号全为1
本地广播地址:f.f.f.f
网络地址:主机号全为0

环回地址:127.0.0.1,通常被称为本地回环地址(Loop back
address),不属于任何一个有类别地址类。它代表设备的本地虚拟接口,所以默认被看作是永远不会宕掉的接口。可以用来测试本机的网络配置。

3、划分子网

划分子网
网络 10.10.0.0/16
a,300 2^9 9个主机号,7个网络号
b,150 2^8 8个主机号,8个网络号
c,100 2^7 7个主机号,9个网络号
d,70 2^7 7个主机号,9个网络号
网络号末尾:
aa,0
bb,10
cc,110
111
主要,前一位不能和aa一样,前二位不能和bb一样,前三位不能和cc一样,故此有上述网络号,完整为
a,10.10.0000 000x. xxxx xxxx
b,10.10.0000 0010. xxxx xxxx
c,10.10.0000 0011. 0xxx xxxx
d,10.10.0000 0011. 1xxx xxxx

四 ARP协议

1、工作过程

(1)同一个网络

查看ARP缓存表(保存着ip和mac地址的映射关系),
如果缓存表中存在目标主机的mac地址则直接把目标mac填入帧;
如果没有,则通过arp协议获取目标主机的mac地址,将对应的映射关系填入缓存表中,再把目标mac填入帧。
发送帧。

(2)不同网络

查看ARP缓存表(保存着ip和mac地址的映射关系),
如果缓存表中存在默认网关的mac地址则直接把目标mac填入帧;
如果没有,则通过arp协议获取默认网关的mac地址,将对应的映射关系填入缓存表中,再把默认网关填入帧。
发送帧。

2、发送的ARP数据报

发送给默认网关的ARP数据报,
目的ip:默认网关的ip
目的mac:广播mac

五、DNS(域名系统)【应用层】【封装在UDP协议中】

将域名解析为ip地址

域名比如:www.bilibili.com
www(访问主站) mail(访问邮箱) member(会员) space

1、域名分级

在这里插入图片描述

2、查询ip

1、先从DNS缓存中查找,然后从hosts文件中查找,以上都找不到的情况下发送DNS 报文给本地域名服务器获取。
2、
在这里插入图片描述

迭代查询:我不知道地址,但是a知道,我告诉本地域名服务器a的地址,让本地域名服务器去找a,a也不知道,提供b的地址,让本地域名服务器找b……如此下去,直到找到域名的ip地址。
递归查询:我不知道地址,我去找a,a不知道,a去找b……直到最后找到ip地址,我把ip地址给本地域名服务器。

DNS协议中,所有的客户端PC知道根服务的IP地址——错!

dns包括回答区域,查询区域。
其中dns的回答区域包括三个子区域:回答,授权,附加

六、PPP(Point to Point Protocol 点对点协议)【数据链路层】

点到点协议,是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。

PPP 具有动态分配IP地址的能力,允许在连接时刻协商IP 地址;
PPP 支持多种网络协议,比如 TCP/IP、NetBEUl、NWLINK等;
PPP 具有错误检测能力,但不具备纠错能力,所以 ppp 是不可靠传输协议;
无重传的机制,网络开销小,速度快:
PPP 具有身份验证功能;
PPP 可以用于多种类型的物理介质上,包括串口线、电话线。

运行PPP协议的双方独占链路

1、功能

(1)它可以通过串行接口传输TCP/IP包;
(2)它可以安全登录

2、格式

在这里插入图片描述

3、运行过程

在这里插入图片描述

七、RIP(距离矢量路由协议)【封装在UDP协议中】【应用层】

和相邻路由器交换路由表中的所有路由。

缺点:跳数衡量的路径并非最优路径;最大跳数为15条,网络规模小;每隔30秒给邻居发送自己的全部路由信息,浪费网络资源;收敛速度慢。
知识点:
	使用UDP协议 
	传输层的端口:520
	120的默认管理距离(静态路由是1,ospf是110)。在RIP路由中设置管理距离是衡量一个路由可信度的等级,可以通过定义管理距离来区别不同路由来源。路由器将挑选具有最小管理距离的路由。
	组播的地址为:224.0.0.9
	更新时间:30秒
	只有邻居才会交换路由信息
	采用水平分割法(不要把从一个邻居学习到的路由再发送回该邻居)来解决路由环路问题。

八、OSPF(链路状态路由协议)【传输层】【封装在IP协议中】

和区域内所有的路由器交换自己直连的路由。

1、格式

在这里插入图片描述

2、ospf的五大类型分组

(1)类型1:问候(Hello) 分组,用来发现和维持邻居的可达性在广播网络中还可用来选举DR和BDR
(2)类型2:数据库描述 (Database Description) 分组,向邻居发送的链路状态数据库的摘要信息。
(3)类型3:链路状态请求 (Link State Request) 分组,向对方请求发送某些链路状态项目的详细信息。
(4)类型4:链路状态更新 (Link State Update) 分组,用洪泛法向全网发送链路状态更新。
(5)类型5: 链路状态确认 (Link State Acknowledgment) 分组对收到的链路状态更新分组进行确认。

3、工作步骤

	(1)通过组播hello包发现邻居
	(2)建立邻接关系。
	只有建立邻接关系才可以交换链路状态信息,但不是所有的邻居都会建立邻接关系,
	在整个网络中只有选举出来的DR(优先级【默认1,范围0~255】)和BDR可以和其他路由器建立邻接关系。
	广播型网络才会选举DR和BDR,PPP网络不会。每一个广播域都要选举DR和BDR。
	(3)传递链路状态信息。每台设备都有一个LSDB(Link Statu Database,链路状态数据库),LSDB的内容是一条条的LSA(Link Statu Advertisement,链路状态公告)
	(4)路由计算

在路由上配置OSPF协议,增加其直连的路由时,需要配置路由丢应的区域号

每隔30分钟/网络发生变化的时候向邻接路由器发送链路状态信息的摘要,收敛以后,网络上每个路由器都对全网的链路状态有相同的认识,每台路由器根据链路状态,独立计算路由。
知识点:
	IP协议号为89
	以组播地址224.0.0.5发送协议包
		单播、广播、组播(也叫多播、任播)的区别:1对1;1对全部、1对1组(只有组内的主机可以接收到信息,这里是同一个广播域的路由接收信息)
	OSPF 适用于IP协议
	增量更新机制:只发送邻居需要的LSA。(先发送LSA摘要,如果需要的话再请求)

分区域:
	背景:因为网络如果很庞大的话,LSDB也是很大的,非常占内存和消耗带宽,所以我们提出划分区域管理路由。
	知识点:
		区域边界路由器(Area Border Router):两个区域通过ABR连接。	
		骨干区域:编号为0。所有的非骨干区域之间的通信都要通过骨干区域0转发。
		区域编号:32位2进制,也可以表示为一个十进制数。

九、路由汇总

背景:大型互连网络中可能会有成百上千个网络地址。
路由器在维护如此庞大的路由表时常会遇到问题。
就像之前“IPv4 地址规划”介绍过的,路由汇总可以减少一台路由器必须维护的路由数量,
因为路由汇总可以用单个汇总地址代表一系列网络地址。

十、IP协议【网络层】

1、IP数据包格式

在这里插入图片描述

2、ip分片

ip最大分组长度可达65535字节,当较大的ip分组穿过承载能力小于ip分组的数据链路层时,网络层的ip分组必须要进行分片,这些分片到达目的地之后,根据标识,标志,片偏移(数据首字节/8)重组成原来的ip。

标识符:用于识别属于同一个数据包的分片,以区别于同一主机或其他主机发送的其它数据包分片,保证分片被正确的重新组合。

标志字段:用于判断是否已经收到最后一个分片。
第1位为无用位。
第2位D是不分片位(DF),Do not fragment,顾名思义,不要分片,当DF位设置为1时,表示路由器不能对报文进行分片处理。
第3位(标志字段的最低位)M表示还有后继分片(MF),More fragment,多分片,当路由器对报分进行分片时,除了最后一个分片的MF位设置为0外,其他所有分片的MF位均设置1,以便接收者直到收到MF位为0的分片为止。

片偏移字段:标识某个分片在分组中的位置。

数据链路层最大数据:1500字节。
IP数据包的首部为20~60个字节,其中20个字节是固定的。
IP数据包的分片过程是在网络层完成的。

案例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

十一、ICMP协议(Internet Control Message Protocol 互联网控制信息协议)【网络层】

每个ICMP消息都是直接封装在一个IP数据报中的,因此,和UDP一样,ICMP是不可靠的。

1、功能

主要用于在主机与路由器之间传递控制信息(询问信息),包括报告错误(错误通知)、交换受限控制和状态信息等。

2、格式

在这里插入图片描述

3、类型和代码

在这里插入图片描述

icmp中, 类型和代码的关系为大类和小类。
代码的值表示是类型值中的一种。

十二、Tracert命令

Tracert 命令用IP生存时间 (TTL) 字段和ICMP错误消息来确定从一个主机到网络上其他主机的路由。

工作过程

首先, tracert 送出一个 TTL是1的IP 数据包到目的地,当路径上的第一个路由器收到这个数据包时,它将TTL减1。此时,TTL变为0,所以该路由器会将此数据包丢掉,并送回一个【ICMP time exceeded 超时】消息(包括发IP 包的源地址,IP 包的所有内容及路由器的IP 地址)。tracert 收到这个消息后,便知道这个路由器存在于这个路径上。
tracert 每次将送出的数据包的 TTL 加1来发现另一个路由器,这个重复的动作一直持续到某个数据包抵达目的地。
当数据包到达目的地后,该主机则不会送回ICMP timeexceeded 消息,一旦到达目的地,由于 tracert 通过 UDP报文段向不常见端口(30000 以上)发送数据包,因此会收到 【ICMP port unreachable 端口不可达】消息,故可判断到达目的地。

十三、路由重定向

路由重定向是指路由器把改变路由的报文发送给源主机,通知源主机下次把去往某目的网络的IP分组发送给另一个路由器。
在这里插入图片描述

十四、Telnet【应用层】【封装在TCP协议中】

TELNET可以让我们从本地计算机通过Internet网络登录到另一台远程计算机上。当登录上远程计算机后,本地计算机就等同于远程计算机的一个终端,从而实现了从本地计算机对远程计算机的操作。
远程登录时需要满足以下条件:远程主机开启TELNET服务,监听23号端口,在本地计算机上必须装有包含TELNET协议的客户程序,必须知道远程主机的IP地址或域名,必须知道登录标识与密码。

1、NVT

TELNET使用网络虚拟终端(Net Virtual Terminal) 来屏蔽异构计算机间字符编码的差异。
具体做法:客户把用户击键的命令或数据,转换成NVT格式并通过网络交给服务器,服务器再把这些命令或数据从NVT格式转换成所需的格式,反过来亦是如此。

2、工作过程

(1)本地与远程主机建立连接,建立TCP连接;
(2)将本地终端上输入的用户名和密码及以后输入的任何命令或字符以NVT格式传送到远程主机;
(3)将远程主机输出的NVT格式的数据转化为本地所接受的格式送回本地终端,包括输入命令回显和命令执行结果;
(4)最后,本地终端对远程主机进行撤销连接。该过程是撤销一个TCP连接。

3、本地终端与远程主机的协商

在这里插入图片描述

Telnet传送键盘输入数据是一个字符一个字符地传送。
Telnet是以明文传送数据的。

十五、TCP

为了实现可靠传输,TCP必须面相字节流,发送的数据按字节编号。
可靠三要素:序号、重传、确认。

1、三次握手

2、四次挥手

在这里插入图片描述

十六、DHCP【应用层】【封装在UDP协议中】

1、报文

报文         源ip                 目的ip               源mac          目的mac
discover    0.0.0.0               f.f.f.f            客户主机的mac   f.f.f.f.f.f
offer      dhcp服务器自己的ip  分配给客户主机的ip   dhcp服务器的mac  客户主机的mac
request     0.0.0.0               f.f.f.f            客户主机的mac   f.f.f.f.f.f
ask      d  hcp服务器自己的ip  分配给客户主机的ip   dhcp服务器的mac  客户主机的mac

2、工作过程

在这里插入图片描述

3、dhcp Relay

本网络上没有DHCP Server时,必须配置DHCP Relay
本网络上有DHCP Server时,无需配置DHCP Relay
存在DHCP Relay的网络中,从申请IP的PC发出的DHCP Discover报文还是广播报文
存在DHCP Relay的网络中,从DHCP Relay到DHCP Server的所有报文都是单播报文

十七 、NAT(网络地址转换)

将内网的私有IP地址转换为公有IP地址,使得可以访问外网。

1、类型

类型 						私有ip    公有ip
静态    						11
动态    						N    :   N
端口多路复用(PAT/NAPT)		N    :    1

2、配置

在这里插入图片描述

静态NAT
ip nat inside source static 10.10.3.131 2.2.2.131
int s0/0  #定义nat的方向
ip nat outside
int f0/0
ip nat inside

动态NAT
access-list 1 permit 10.10.0.0 0.0.255.255 #允许源ip为10.10.0.0/16的数据通过
(1)ip nat pool xianyu 2.2.2.10 2.2.2.100 netmask 255.255.255.0  or
(2)ip nat pool xianyu 2.2.2.10 2.2.2.100 prefix-length 24
ip nat inside source list 1 pool xianyu
int s0/0  #定义nat的方向
ip nat outside
int f0/0
ip nat inside

端口多路复用(PAT)
access-list 1 permit 10.10.0.0 0.0.255.255
ip nat inside source list 1 s2/0(outside口) overload  #也可以定义地址池,和动态nat几乎一样,只是多了overload

用telnet登录R2
conf t
enable password cisco #配置特权用户密码
line vty 5 0 #最多配置6个虚拟终端
login
password cisco #配置远程登录密码

远程登录
telnet 3.3.3.3

R1上打开nat调试
debug ip nat

R1上查看nat信息
show ip nat translations tcp

十八、HTTP【应用层】【封装在TCP协议中】

1、无连接

http 1.0 是无连接的,但是现在网页很复杂,嵌入了很多图片,这时候每次访问图片都需要建立一次TCP连接就显得很低效。
解决办法: Keep-Alive(持续连接) 被提出用来解决这效率低的问题。

持续连接的结束问题:
1.响应时采用Transfer-Encoding: chunked,解决传输数据的边界问题。
2.在HTTP响应头部中,用“Content-Length: 12395”告诉了客户端实体长度为12359字节

2、无状态

协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。给服务器发送HTTP 请求之后,服务器发送数据过来,但是,发送完,不会记录任何信息。
每个HTTP请求都是独立的,Keep-Alive没能改变这个结果如果后续处理需要前面的信息,则必须重传。
优点与缺点:优点减轻了服务器负荷。缺点每次请求可能会传输重复的内容。
无状态的特点严重阻碍了客户端与服务器进行动态交互的 Web应用程序,例如购物车程序。

解决办法: Cookie和 Session

3、格式

http的组成:
1、请求行/响应行
2、首部:Content-Encoding之类的规定编码,跨域等的信息
3、主体:http要传输的内容

请求行:方法(get/post) url 版本号
响应行:版本号 状态码 原因短语(OK)

十九、命令

1、静态路由

ip route 【目标网段】【子网掩码】【 下一跳】

默认路由

ip route 0.0.0.0 0.0.0.0 10.10.0.254

2、rip 路由选择协议

router rip
version 2
network 【直连网段】

三层交换机上配置rip要开启ip routing

configure terminal #进入全局配置模式
ip routing
end #退出
wr #保存

查看路由表信息

show ip route

3、ospf 路由选择协议

router ospf 10(进程号)
network 【直连网段】 【反码】 area 0(区域号)

4、ip

清除ip地址

clear ip

查看ip地址

show ip

给pc配ip地址

ip 10.10.0.1/24 10.10.0.254(网关ip)

给路由器/三层交换机配ip地址

int g0/0
ip address 10.10.0.1 255.255.255.0

5、vlan

划分vlan

vlan 10
vlan 20 #在交换机上创建vlan10和vlan20
interface g0/0
switchport access vlan 10 #将接口g0/0划分到vlan10上
interface g0/1
switchport access vlan 20

查看vlan的相关信息

shiw vlan-switch brief

配置trunk口

int g0/0
switchport mode trunk

查看trunk的配置情况

show int trunk

6、arp

清除pc/交换机上的arp缓存

clear arp

查看pc/交换机上的arp缓存

show arp

查看/清除交换机上的mac地址表

show/clear mac-address-table

7、ppp协议

两个路由的接口都要配置上

int g0/0
encapsulation ppp

二十、总结

数据链路层:ppp
网络层:ip,icmp
传输层:tcp,udp,ospf【ip】
应用层:http【tcp】,dns【udp】,dhcp【udp】,rip【udp】,telnet【tcp】
在osi模型中,arp属于数据链路层,在tcp/ip模型中,arp属于网络层

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值