计算机网络基础知识

计算机网络体系结构OSI七层结构:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层TCP/IP分层:网络接口层、网络层、传输层、应用层五层结构:物理层、数据链路层、网络层、传输层、应用层物理层数据链路层PPP点对点Ethernet以太网IEEE802MAC交换机、网桥帧(Frame)网络层协议IPAR
摘要由CSDN通过智能技术生成

计算机网络体系结构

OSI七层结构:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
TCP/IP分层:网络接口层、网络层、传输层、应用层
五层结构:物理层、数据链路层、网络层、传输层、应用层

物理层


数据链路层

PPP点对点
Ethernet以太网
IEEE802
MAC
交换机、网桥
帧(Frame)


网络层

协议

IP
ARP
RARP
ICMP
IGMP
Packet包
路由器

IP地址

私有地址
A类地址10.0.0.0-10.255.255.255 127.0.0.0-127.255.255.255(保留作循环测试)
B类地址172.16.0.0-172.31.255.255 169.254.0.0-169.254.255.255(保留作自动获取IP地址用)
C类地址192.168.0.0-192.168.255.255

ARP协议

1:首先,每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系。 
2:当源主机要发送数据时,首先检查ARP列表中是否有对应IP地址的目的主机的MAC地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送ARP数据包,该数据包包括的内容有: 源主机 IP地址,源主机MAC地址,目的主机的IP 地址 。 
3:当本网络的所有主机收到该ARP数据包时,首先检查数据包中的IP地址是否是自己的IP地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的IP和MAC地址写入到ARP列表中,如果已经存在,则覆盖,然后将自己的MAC地址写入ARP响应包中,告诉源主机自己是它想要找的MAC地址。 
4:源主机收到ARP响应包后。将目的主机的IP和MAC地址写入ARP列表,并利用此信息发送数据。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。 
广播发送ARP请求,单播发送ARP响应。

RARP协议

RARP是逆地址解析协议,作用是完成硬件地址到IP地址的映射,主要用于无盘工作站,因为给无盘工作站配置的IP地址不能保存。工作流程:在网络中配置一台RARP服务器,里面保存着IP地址和MAC地址的映射关系,当无盘工作站启动后,就封装一个RARP数据包,里面有其MAC地址,然后广播到网络上去,当服务器收到请求包后,就查找对应的MAC地址的IP地址装入响应报文中发回给请求者。因为需要广播请求报文,因此RARP只能用于具有广播能力的网络。

ICMP协议

当传送IP数据包发生错误--比如主机不可达,路由不可达等等,ICMP协议将会把错误信息封包,然后传送回给主机,给主机一个处理错误的机会。

ICMP协议大致分为两类,一种是查询报文,一种是差错报文。其中查询报文有以下几种用途:

1.         ping查询(不要告诉我你不知道ping程序)

2.         子网掩码查询(用于无盘工作站在初始化自身的时候初始化子网掩码)

3.         时间戳查询(可以用来同步时间)

而差错报文则产生在数据传送发生错误的时候。


ping

它利用ICMP协议包来侦测另一个主机是否可达。原理是用类型码为0ICMP发请 求,受到请求的主机则用类型码为8ICMP回应。ping程序来计算间隔时间,并计算有多少个包被送达。用户就可以判断网络大致的情况。
ICMPping请求数据报在每经过一个路由器的时候,路由器都会把自己的ip放到该数 据报中。而目的主机则会把这个ip列表复制到回应icmp数据包中发回给主机。但是,无论如何,ip头所能纪录的路由列表是非常的有限。

traceroute

首先给目的主机发送一个TTL=1(还记得TTL是什么吗?)的UDP(后面就 知道UDP是什么了)数据包,而经过的第一个路由器收到这个数据包以后,就自动把TTL1,而TTL变为0以后,路由器就把这个包给抛弃了,并同时产生 一个主机不可达的ICMP数据报给主机。主机收到这个数据报以后再发一个TTL=2UDP数据报给目的主机,然后刺激第二个路由器给主机发ICMP数据 报。如此往复直到到达目的主机。这样,traceroute就拿到了所有的路由器ip
traceroute发送的是端口号>30000(真变态)UDP报,所以到达目的主机的时候,目的 主机只能发送一个端口不可达的ICMP数据报给主机。

静态IP选路

系统路由表
ICMP的IP重定向和路由发现报文
IP包在某一个地方转向的时候,都回给发送IP报的源主机一个ICMP重定向报文,而源主机就可以利用这个信息来更新自己的路由表
在主机引导的时候,一般会发送在网内广播一个路由请求的ICMP报文,而多个路由器则会回应一个路由通告报文。

动态选路

内部网关协议IGP--RIP
开放最短路径优先协议OSPF

IGMP协议

单播、广播、多播
多播: 可以说广播是多播的特例,多播就是给一组特定的主机(多播组)发送数据,这样,数据的播发范围会小一些(实际上播发的范围一点也没有变小),多播的MAC地址是最高字节的低位为一,例01-00-00-00-00-00。多播组的地址是DIP,规定是224.0.0.0-239.255.255.255
IGMP
为了知道多播组的信息,多播路由器需要定时的发送 IGMP 查询, IGMP 的格式可以看书,各个多播组里面的主机要根据查询来回复自己的状态。

传输层

TCP   字符流
UDP 数据报
segment段

TCP协议

为了建立一个TCP连接,系统可能会建立一个新的进程(最差也是一个线程),来进行数据的传送
流量控制
最大报文长度
在建立连接的时候,通信的双方要互相确认对方的最大报文长度 (MSS) ,以便通信。一般这个 SYN 长度是 MTU 减去固定 IP 首部和 TCP 首部长度。
2MSL等待状态
服务器给出了一个平静时间的概念,这是说在 2MSL 时间内,虽然可以重新启动服务器,但是这个服务器还是要 平静 的等待 2MSL 时间的过去才能进行下一次连接。
TCP服务器设计
可以发现UDP的服务器完全不需要所谓的并发机制,它只要建立一个数据输入队列就可以。但是TCP不同,TCP服务器对于每一个连接都需要建立一个独立的进程(或者是轻量级的,线程),来保证对话的独立性。所以TCP服务器是并发的。而且TCP还需要配备一个呼入连接请求队列(UDP服务器也同样不需要),来为每一个连接请求建立对话进程

TCP交互数据流

对于交互性要求比较高的应用, TCP 给出两个策略来提高发送效率和减低网络负担:
1 )捎带 ACK:当主机收到远程主机的TCP数据报之后,通常不马上发送ACK数据报,而是等上一个短暂的时间,如果这段时间里面主机还有发送到远程主机的TCP数据报,那么就把这个ACK数据报捎带着发送出去,把本来两个TCP数据报整合成一个发送
(2)Nagle 算法(一次尽量多的发数据):当主机A给主机B发送了一个TCP数据报并进入等待主机BACK数据报的状态时,TCP的输出缓冲区里面只能有一个TCP数据报,并且,这个数据报不断地收集后来的数据,整合成一个大的数据报,等到B主机的ACK包一到,就把这些数据一股脑的发送出去。

插口
窗口

TCP的成块数据流

ACK的应答策略: ,发送端将会连续发送数据尽量填满接受方的缓冲区,而接受方对这些数据只要发送一个 ACK 报文来回应就可以了
滑动窗口:滑动窗口本质上是描述接受方的TCP数据报缓冲区大小的数据,发送方根据这个数据来计算自己最多能发送多长的数据。如果发送方收到接受方的窗口大小为0TCP数据报,那么发送方将停止发送数据,等到接受方发送窗口大小不为0的数据报的到来。
数据拥塞
TCP 发送方需要确认连接双方的线路的数据最大吞吐量是多少。这,就是所谓的拥塞窗口。
拥塞窗口的原理很简单,TCP发送方首先发送一个数据报,然后等待对方的回应,得到回应后就把这个窗口的大小加倍,然后连续发送两个数据报,等到对方回应以后,再把这个窗口加倍(先是2的指数倍,到一定程度后就变成现行增长,这就是所谓的慢启动),发送更多的数据报,直到出现超时错误,这样,发送端就了解到了通信双方的线路承载能力,也就确定了拥塞窗口的大小,发送方就用这个拥塞窗口的大小发送数据。

TCP的超时重传

超时重传是 TCP 协议保证数据可靠性的另一个重要机制,其原理是在发送某一个数据以后就开启一个计时器,在一定时间内如果没有得到发送的数据报的 ACK 报文,那么就重新发送数据,直到发送成功为止。
超时时间的计算
RTO的更新
拥塞避免算法和慢启动门限
所谓的慢启动门限就是说,当拥塞窗口超过这个门限的时候,就使用拥塞避免算法,而在门限以内就采用慢启动算法。所以这个标准才叫做 门限
快速重传和快速恢复算法
TCP定时器
超时定时器
坚持定时器: TCP 服务器收到了客户端的 0 滑动窗口报文的时候,就启动一个定时器来计时,并在定时器溢出的时候向向客户端查询窗口是否已经增大,如果得到非零的窗口就重新开始发送数据,如果得到 0 窗口就再开一个新的定时器准备下一次查询
保活定时器: 因为 TCP 是面向连接的,所以就会出现只连接不传送数据的 半开放连接 ,服务器当然要检测到这种连接并且在某些情况下释放这种连接,这就是保活定时器的作用。其时限根据服务器的实现不同而不通。
2MSL定时器

TCP三次握手和四次分手

TCP和UDP的区别


应用层

2的16次方个端口,16bit长

协议

TCP
FTP 21端口
TELNET 23端口
SMTP 25端口
SSH
POP3 110端口
HTTP 服务器80端口
WWW
UDP
DNS 53端口
SNMP 161端口
TFTP 69端口
NAT

DNS域名系统

DNS系统是一个分布式的数据库,当一个数据库发现自己并没有某查询所需要的数据的时候,它将把查询转发出去,而转发的目的地通常是根服务器,根服 务器从上至下层层转发查询,直到找到目标为止。DNS还有一个特点就是使用高速缓存,DNS把查询过的数据缓存在某处,以便于下次查询时使用。
响应报文可以回复多个IP,也就是说,域名可以和多个IP地址对应,并且有很多CNAME
正向查询指的是通过域名得到IP的查询,而反向查询就是通过IP得到域名。例如用host命令,host ip就可以得到服务器的域名,host domainName 就得到IP

Telnet协议


应用编程接口

socket
TLI

Linux网络命令

write
mail
last
lastlog -u UID
wall 广播
ping
ifconfig
traceroute
netstat  -t(TCP) -u(UDP) -l(listen) -r(route) -n(显示IP和端口)
-tlun -an -rn


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值