计算机网络原理

计算机网络笔记

英文:1656词 | 中文:7902字

Posted by YY on March 13, 2021

随手记

连通性(彼此连通,交换信息)、共享(信息共享、软硬件共享)

网络(不超过一百米){节点、链路}——–互连网(许多计算机连接)

互联网(网络设备(路由器)连接)internet

因特网:全球最大的互联网 Internet

三个阶段:1969年arpanet;1985三级结构因特网;1993(起源于1993)ISP结构

三层ISP:主干、地区、校园网

p2p:(对等连接方式)

数据交换方式:电路交换、报文交换、分组交换(最省时间)

新的理解:不单单从网络覆盖范围区分局域网和广域网 广域网(>=100m)

局域网:自己购买设备,自己维护。带宽固定,100m-1000m

广域网:花钱买服务,花钱买带宽

速率:b\kb\mb\gb(\8)

吞吐量:总的流量

时延:发送(长度\带宽)、传播(长度\速率)、处理、排队

osi 七层

应用层:能够产生网络流量能够和用户交互的应用程序

表示层:加密、压缩、开发人员

会话层:服务和客户端的会话(查木马 netstst -nb)

传输层:可靠传输(建立会话)、不可靠传输(QQ)、流量控制

网络层:IP地址编址、选择最佳路径

数据链路层:数据如何封装、添加物理层地址、MAC地址

物理层:电压、接口标准

网络安全

  • 网络排错:从底层到高层

  • 网络安全和OSI:数据链路层安全(ADSL拨号连接上网)(AP密码无线连接)

物理层

解决如何在连接各种计算机的传输媒体上传输数据比特流,不是具体的传输媒体

数据通信系统CcvW4.png

数据–运送消息的实体

信号–数据的电气或电磁的表现

码元–波形

信道–单工、半双工、全双工

特性

  • 机械特性:接口形状、大小、引线数目

  • 电气特性:电压范围

  • 功能特性:例如规定-5v表示0。

  • 过程特性

数据通信

CUQ6R.png

导向传输媒体

  • 50Ω同轴电缆用于数字传输、基带传输
  • 75Ω同轴电缆用于模拟传输,带宽同轴电缆。

集线器

信号的放大和重发功能,扩大网络的传输范围

信道复用

  • 频分复用:同样时间占用不同带宽资源CUcUp.png
  • 时分复用:CJvnQ.png
  • 码分复用:手机通信(CDMA)

码片内积

CNbRz.png

宽带接入技术

CN1fG.png

数据链路层

远程重启命令 shutdown -m \127.0.0.1 -r

Kakei.png

KxeMT.png

KxU32.png

封装成帧

数据前后加首尾

透明传输

Ki7xw.png

差错控制

Kiljk.png

KiV5e.png

循环冗余检验(CRC)

Ki8ty.png

KxTpE.png

FSC是crc的一种

PPP协议

KiYNX.png

KiFb6.png

最大传输单元不超多1500字节

  • 协议组成KimDE.png

  • ppp协议帧格式Ki2bf.png
  • 字节填充Ki34U.png
  • 零比特填充KiaSe.pngKiyyi.png 工作状态

以太网特点

KD6gr.png

  • 协议:CSMA/CD协议KD8G5.png 不超过一百米
  • 重要特性:只能半双工通信 争用期:检测到碰撞的最长时间为2t(51.2微秒)不够64字节自动用0补齐。KDAXC.png

二进制指数类型退避算法

KDciR.png

以太网的两个标准

KDbez.png

  • 提供的服务KDusu.png

    以太网信道利用率

KDJW4.png

  • 参数aKDtJX.png 最大值KDNgD.png

MAC层(MAC地址)

KDrc6.png

hIErR.png

MAC帧格式

hIFCz.png

hImqu.png

  • 协议hIfa6.png

    有效的MAC帧长度为64-1518之间

扩展以太网

  • 在物理层扩展(不宜超过30台机器,越多效率越低)hIzdT.pnghI0rE.png
  • 在数据链路层扩展hI2KQ.pnghICqh.png
  • 使用网桥扩展以太网hIhgW.png
  • 透明网桥hIjZ2.pnghI9XH.png

虚拟局域网

hLeWz.png

hLQhR.png

交换机上的干道在进行vlan划分后,采用统计时分复用技术(每个vlan在进行跑数据时会加上标记的vlan,接受的时候根据标记进行广播)【跑多个vlan数据要配置干道端口;干道数据用干道端口】hLtJh.pnghLNzS.png

  • ISL标记hLrc2.png
  • VID:VLAN标识符,唯一标志了以太网属于哪个VLAN

高速以太网

100base-T(存储转发)

hLExL.png

hLwnw.png

  • 吉比特以太网hL4zi.pnghLxoX.pnghPnbW.pnghP5o2.png

hPeFf.png)

网络层

1.网络层提供的两种服务

端系统确保可靠交付

  • 虚电报服务 cRe4NF.png
  • 数据报服务 cReLB6.png

  • 两者比较cRmEE8.png

2.网际协议 IP

2.1 网络互连的设备

cRmBb6.png

网关是到其他计算机的路由器的接口,可以不止一个网关

2.2 网络互联的问题

cRmvq0.png

2.3 互连网络和虚拟互连网络

cRnDQs.png

2.4 IP协议简介

cRuktS.png

cRuK00.png

2.5 IP层次结构

cRuJ1J.png

只关心到某一网段怎么走就可以,而不关心到某一计算机

2.6 网络地址

cRuo9g.png

cRK1bt.png

cRKEE6.png

cRKU2Q.png

127地址认为是本地回环地址

169.254.0.0

保留的私网地址:10.0.0.0

172.16.0.0–172.31.0.0

192.168.0.0–192.168.255.0

2.7子网掩码

g1UVqU.png

2.8子网划分

第一个地址为网关地址 倒数第一个地址是广播地址

  • 划分为两个网段
  • gGYE7D.png

  • 划分为四个网段
  • gGUmh4.png

  • 划分为八个网段
  • gGUJAO.png
2.9 超网
  • gsOQot.png
  • gsONLj.png
2.10 IP地址和MAC地址

mac地址决定下一跳是谁;ip地址决定了终点是谁。

3. ARP&RARP

gsjdP0.png

漏洞利用:”网络执法官”

3.1 IP数据报

gszZb4.png

gszXJ1.png

gszvz6.png

gsz1xK.png

gySpLD.png

gszHZ4.png

gySkFA.png

windows TTL=128

linux TTL=64

过一个路由器,TTL减一,因为不在同一网段

  • 分片(规定以8为单位,一个字节8位,一个片偏移对应8个字节)

    image-20210514205840350

4. ICMP报文类型

2ingaj.png

2inWin.png

2iu6l6.png

type:3表示终点不可达

2iKjKK.png

2iM95d.png

ping 用来检测网络故障,TTL粗略估计对方系统
pathping 用来分析网络故障原因,丢包严重的地方,跟踪数据包路径

2i1lRA.png

4. IGMP组播协议

组播=多播

5. 动态路由协议

5.1 RIP协议
  • 动态路由协议

最早 周期性广播 30秒 跳数(选择最佳路径) 最远跳数(16)

  • 添加路由表:route add
  • 网关就是默认路由
  • 路由表打印输出:route print
5.2 OSPF协议

动态路由协议 开放式

度量值 带宽 支持多区域 触发式更新

2FCWE6.png

三个表 	
	邻居表 (hello一下)
	链路状态表
	计算路由表(不会产生环路)

2FSfUS.png

  • OSPF划分不同区域(但是最大是二级网络)

    2FCPAK.png

  • OSPF其他特点

    2FC39g.png

6.BGP协议

2FaTDH.png

2F3pD0.png

2FdprQ.png

7. VPN技术

VPN(虚拟专用网络)在互联网上传输私有数据

2FBoWt.png

  • 虚拟专用网 VPN

    2FgL3d.png

  • 用隧道技术实现虚拟专用网

    2F2NVK.png

8. NAT和PAT

网络地址转换https://wiki.mbalib.com/wiki/%E7%BD%91%E7%BB%9C%E5%9C%B0%E5%9D%80%E8%BD%AC%E6%8D%A2

  • NAT端口映射

    练习将虚拟机的3389映射至物理机的4000端口。

    编辑–>虚拟机网络编辑–>NAT设置–>添加

传输层

TCP协议、UDP协议

2IhXnJ.png

2I4ljg.png

1. 协议应用场景

  • TCP 分段 编号 流量控制 建立会话(保证线路畅通)netstat -n

    QQ传文件,上传下载文件

  • UDP 一个数据包就能完成数据通信 不建立会话

    QQ聊天

2. 传输层和应用层之间的关系

2Io3uD.png

http=TCP+80
https=TCP+443
ftp=TCP+21
SMTP=TCP+25
POP3=TCP+110
RDP=TCP+3389
共享文件夹=TCP+445
SQL=TCP+1433
DNS=UDP+53 or TCP+53
mon=TCP+4000

3. 应用层协议和服务之间的关系

服务运行后在TCP或UDP的某个端口侦听客户端请求

  • 查看自己计算机侦听的端口

    netstat -an

  • 测试远程计算机打开的端口

    telnet 127.0.0.1

  • 端口代表服务

    更改端口增加服务器安全

  • 远程连接桌面mstsc

  • windows防火墙的作用(https://wenwen.sogou.com/z/q745965771.htm

  • 灰鸽子木马(可以远程连接,如果进行策略添加,就会编程卧槽马)

4. TCP协议特点(点对点)

2ITkGt.png

4.1 如何实现可靠传输?
  • 工作原理(停等协议~~约等于一个来回时间)

    2IOPIg.png

  • 确认丢失和确认迟到

    2IbMIH.png

  • 可靠通信的实现

    2Ib0ij.png

  • 信道利用率

    2IbcLT.png

    • Td:对方计算机收的时间;RTT:数据包往返的时间;Ta:收确认包的时间
    • 2Iq96P.png提高信道利用率实际提高Td时间即可
  • 提高信道利用率(流水线传输)

    2IqVYj.png

    • 滑动窗口(实现可靠的流水线传输)

      2IqKXV.png

  • 以字节为单位的滑动窗口(未丢失)

    • 在数据未到达接受的缓存窗口时不能删除缓存区的数据;发送窗口大小由接受窗口大小决定。 2omEEF.png

    • 接受成功以后,发送方的滑动窗口向后移动,然后发送方可以将已经传输完成的缓存信息进行删除;接收方接收成功后也向后进行移动,同时已经可以将收到的信息进行排序,读出接受好的信息

      2omsUg.png

  • 以字节为单位的滑动窗口(发生丢失)

    • 丢失一部分,会发送确认ack(7)和选择性确认(sack)来只进行接受丢失的那一部分。

      2onnIg.png

  • 超时重传时间的选择

    2oMfW4.png

4.2 TCP报文首部格式

TCP首部固定是20个字节

报头的序号是以每个数据段的第一个命名的,例如:1:1234,5:567,8:89…

确认号:每个数据包的最后一个字节;例如:123:3;4567:7….

数据偏移:记录TCP报文段第几个字节以后是数据(也就是TCP首部有多长)..一个1代表四,一共四个1(也就是占四个字节),最多是60个字节,不是15个自己字节.

URG:如果为1,不用排队,直接传输(ctrl+c停止)

SYN和ACk:syn建立请求,ack确认请求

PSH:直接加塞,首先发送至应用

FIN:数据传完以后,fin变为1,释放连接

2IqjBT.png

4.3 如何实现流量控制?

2o8bGT.png

4.4 如何避免网络拥塞?
  • 出现拥塞的条件:对资源需求的总和>可用资源

    2oY4qH.png

  • 拥塞控制起到的作用:

    2oYqRf.png

  • 慢开始和拥塞避免

    2oNV9P.png

    • 慢开始(二倍增长)

      2oNKBQ.png

    • 实现举例

      2oNaB4.png

    • 拥塞避免

      2oNhEd.png

  • 快重传和快恢复

    2oNT8P.png

    • 快重传(快重传算法首先要求接收方每收到一个失序的报文段后就立即发出重复确认(为的是使发送方及早知道有报文段没有到达对方)而不要等待自己发送数据时才进行捎带确认。)

      详细讲解https://zhuanlan.zhihu.com/p/261096328

      2HrYa6.png

    • 快恢复

      2HslY8.png

4.5 发送窗口的实际上限值

2HyF7q.png

4.6 面向字节流?

2I7wnS.png

  • 先向TCP缓存中放(没有规律)
  • 然后进行传输(加数据包头)
  • 到接收端缓存,去头,然后按照顺序进行组装
  • 然后应用程序从缓存进行读取数据(没有规律)

5. TCP连接

IP:port(IP地址+端口=套接字)

  • TCP传输连接管理

    2HyNge.png

2IHp4A.png

6. TCP连接建立

  • 三次握手

    x是A客户端指定的,y是B服务器指定的

    2Hy0HI.png

    2H6TeA.png

  • 各状态

    2Hc9wn.png

7. TCP连接释放

1、客户端首先主动发送FIN=1到服务器端,服务端接收后发送确认

2Hco1U.png

2、服务端再主动向客户端发送FIN=1,客户端接收后确认。之后连接断开

2HgV4P.png

  • 连接释放时的状态

    2MSL为两分钟,其实是两分钟以后连接真正结束。为了防止第二次服务端发送FIN=1关闭时,客户端确认后立即退出,如果客户端发送出去后服务端未收到,服务端会一直发送确认关闭,此时服务端就会发生占用资源,多的话直接崩溃宕机。

    2HglHs.png

应用层

HTTP、HTTPS、FTP、DNS、SMTP(发邮件)、POP3(收邮件)

1.域名系统

1.1 DNS服务
  • 作用

    负责解析域名,将域名解析成IP地址

1.2 域名?
  • 根 :‘.’

  • 顶级域名: 根下有顶级域名(com、edu、net、org、cn、gov)

  • 二级域名(个人可以申请):baidu.com(全球唯一)

  • 三级域名:dba(www.dba.yangyang.com)

…后边可以是多级域名,但是注册时只需注册二级域名即可

  • 网站:www.baidu.com、email.baidu.com、ftp.baidu.com(这些是网站的一个完整名称,叫完全限定域名【FQDN】)
1.3 DNS解析服务器

8.8.8.8:谷歌公司服务器 222.222.222.222:电信公司服务器

1.4 域名解析测试
  ping www.baidu.com

  nslookup www.baidu.com
1.5 域名解析过程

2bIIzR.png

PS:DNS服务器有缓存;根DNS服务器有十多个;配置DNS服务器可以配多个,但是只要有一个可以正常运行就可以进行域名解析

1.6 安装自己的DNS服务器?
  • 解析内网自己的域名
  • 降低到Internet的域名解析流量
  • 域环境

在内网中安装一个DNS服务器,可以提供自己内部人员进行网站访问,因为可能内网网站与互联网网站名称冲突,同时内网网站互联网人员访问不了。可以节省流量输出和输入,如果某一区域都进行外网DNS解析,域名解析流量较大,如果使用内网DNS,内网DNS一次解析之后会进行缓存。dddd(懂得都懂)

如果要访问外网的网站,内网DNS服务器首先查找自己,如果没有,会进行上外网查询,查询后进行缓存,然后返回结果。

2bTEB6.png

2. DHCP动态主机配置

  • 静态IP地址
  • 动态IP地址
2.1 DHCP客户端请求IP地址的过程

DHCP服务器必须是静态IP、正确的

租约时间:为了防止某个计算机退出网络后,该IP地址无法分配给其他用户;当租约是八天时,大约在4天之后,计算机会重新找DHCP服务器进行续约。租约时间设置按实际情况进行,学校一般为两个小时,因为一节课两个小时,下课后学生带着电脑转移阵地,会有下一波学生进行上课。

释放租约:ipconfig /release

1.   客户端向网络当中发送一个DHCP DISCOVER数据包,等待DHCP服务器回应。这个包叫DHCP发现包。
2.   当网络中的DHCP服务器受到了来自客户端的数据包后,会向客户端回复一个DHCP OFFER包,其中就包括了将要分配的IP地址的信息。这个包叫DHCP提供包。
3.   客户端受到了来自服务器的数据包之后,会向服务器发送一个DHCP REQUEST包,请求使用此IP地址。这个包叫DHCP请求包。
4.   服务器收到了来自客户端的请求之后,会向客户端回应一个DHCP ACK包,对客户端的请求加以确认,这个包叫DHCP确认包。
至此首次租约过程完毕。
注:这四个包全部都是广播包。

详细看https://blog.csdn.net/coolingcoding/article/details/7302798

2.2 跨网段地址分配

计算机的DHCP服务器要给几个网段分配地址,就要创建几个作用域

ip helper address IP地址(DHCP服务器)这个命令用于跨网段地址分配,某网段路由器直接找寻DHCP服务器,进行IP地址分配

3. 文件传输协议(FTP)

2bxmLQ.png

2bjfnH.png

3.1 主动模式

ftp客户端告诉ftp服务器使用什么端口侦听

ftp服务器和ftp客户端的这个端口建立连接 源端口20

2bvDKg.png

2bvxMD.png

2bxMon.png

3.2 被动模式

ftp服务器打开一个新端口 等待ftp客户端的连接

ftp服务端 如果有防火墙 需要在防火墙开21和20端口 使用主动模式进行数据连接

2bv5MF.png

2bx9Zd.png

2bx4Yt.png

4. 远程终端协议(TELNET)

默认使用tcp的23端口

  • 可以用作端口扫描工具

    telnet 192.168.80.1 80
    telnet 192.168.80.1 443
    telnet 192.168.80.1 3389
    

    2qJ6eO.png

5. 远程桌面协议RDP(Remote Desktop Protocol)

端口 3389

net user administrator a1!	//更改用户密码
net user han a1! /add	//添加用户
net localgroup administrators han /add
将用户添加到远程桌面组 Remote Desktop Users组

Server多用户操作系统 启用远程桌面后多用户同时使用服务器
XP和windows7单用户操作系统 不支持同时使用

还可以远程映射硬盘

6. HTTP超文本传输协议(Hyper Text Transfer Protocol)

2qtIZ8.png

6.1 URL一般形式

2qNsO0.png

网站表示:不同地址、不同端口、不同主机头

6.2 web站点创建

win10搭建

花生壳远程搭建

  • 宝塔
  • windows组件->服务->www服务
6.3 web代理服务器
  • 使用场景

    • 节省内网访问Internet的带宽

      2qdiWQ.png

    • 绕过防火墙(翻墙)

    • 避免网络跟踪

7. 电子邮件(【SMTP】发、【POP3、IMAP】收)

人——>申请邮件空间(邮局[收件箱、发件箱等])-->身份验证(账号密码)-->发送邮件到邮局发件箱(邮局作为中继)SMTP协议-->邮局通过DNS服务找到对方地址-->发送邮件到对方收件箱(SMTP协议)-->收件人去“邮局”收件箱进行下载(需要身份验证即账号密码)POP3、IMAP协议

PS:pop3和IMAP都可以做收邮件协议,IMAP更为强大

2LCs0O.png

中继不可匿名,一旦被利用,就会成为垃圾邮件制造者

  • 虚拟机邮件服务器配置搭建

    1.  安装P0P3和SMTP服务以及DNS服务
    2.  在DNS服务器上创建91xueit.com和51cto.com
    	创建主机记录mail 192.168.80.100
    	创建邮件交换记录MX记录
    3.	在POP3服务上创建域名、创建邮箱
    4.	配置SMTP服务器创建远程域名*.com 允许发送至远程
    5.	配置outlookExpress 指明收件的服务器和发邮件的服务器
    						使用POP3协议收邮件
    
  • 搭建能够在Internet上使用的邮件服务器
    1. 在Internet上注册了域名 MX记录
    2. 邮件服务器有公网IP地址 或端口映射到邮件服务器 SMTP TCP 25

网络安全

看其他博客

感谢

韩老师的b站视频,连接放在这里了,大家请加入稍后观看,不要收藏,防止被和谐

https://www.bilibili.com/video/BV1Tb411x7CE