//================================================================================================================================= [1] >> 互联网的三层架构 [ ----------------------------------------------------------------------------------- <√>1>>国际internet 国际internet #各国ISP接入国际internet ↑ ↑ ↑ | | | -----------------------------------|------------|-------|--------------------------- | | | <√> 2>>广域网=外网 | ISP1 | | 路由网关1 | #ISP = Internet Service Provider | / \ | #机房:ISP服务商的服务器 | / \ | #双线机房:2个ISP服务商共享机房 | / \ | ISP2 -- -- -- -- -- ISP3 ↑ 路由网关3 路由网关2 #网段入口,接收不同网段数据 -----------------------------------↑------------------------------------------------ <√>3>>局域网=内网 | <---光纤 汇聚层交换机 #与互联网通信 ↗ ↑ ↖ 集线器 集线器 集线器#汇聚层与接入层<100M / | \ 接入层交换机1 接入层交换机2 接入层交换机3 #交换机一般是10M,100M,1000M ↑ ↑ ↑ ↑ ↑ ↑ 集线器 集线器 集线器 集线器 集线器 集线器 #拓展物理层长度,集线器<100M ↑ ↑ ↑ ↑ ↑ ↑ 主机1 主机2 主机3 主机4 主机5 主机6 ----------------------------------------------------------------------------------- ] //================================================================================================================================= [2] >>数据在互联网的传输过程 [ <x> 1>>MAC:48位 = 12个16进制数,如[08:00:20:0A:8C:6D] <x> 2>>数据段 [源port+目标port][数据] <x> 3>>数据包: [client-IP+server-IP][源port+目标port][数据] <x> 4>>数据帧:[当前设备MAC+下一设备MAC][client-IP+server-IP][源port+目标port][数据][FCS] //数据链路层 <√>4>>DNS:域名解析系统 [ 1>>浏览器输入要访问的域名 2>>地址解析DNS --> 网页IP地址 ] <√>5>>IP = 网络部分 + 主机部分 ] //================================================================================================================================= <√>[3] >> OSI七层架构 [ 应用层 应用层 ⇩ ⇧ 表示层 [1级设备,延长物理层长度] 表示层 ⇩ ↑ [2级设备,重新封装MAC帧] ⇧ 会话层 | ↑ [3级设备,重新封装IP数据包] 会话层 ⇩ | | ↑ ⇧ (数据段)传输层 | | | 传输层 ⇩ | | | ⇧ (数据包)网络层 | | [ 路 由 器 ] [ 路 由 器 ] 网络层 ⇩ | | ↑ ↓ ↑ ↓ ⇧ (数据帧)数据链路层 | [交换机] [交换机] [交换机] [交换机] 数据链路层 ⇩ | ↑ ↓ ↑ ↓ ↑ ↓ ↑ ↓ ⇧ (bite流)物理层 ----> [hub] [hub]---->[hub] [hub]---->[hub] [hub] ---->[hub] [hub] ----> 物理层 <√>应用层 #能产生网络流量应用软件 <x>表示层 #向上对应用层服务,向下接受来自会话层的服务。 <x>会话层 #利用传输层提供的服务,使应用建立和维持会话,并能使会话获得同步。 <x>传输层 #主要负责向两个主机中进程之间的通信提供服务,将文件切割成能传输的数据段 <√>网络层 #网络层的目的是实现两个端系统之间的数据透明传送,将每个数据段封装为IP数据包,根据IP负责在不同网段之间转发IP数据包 <√>数据链路层 #将源自网络层来的数据可靠地传输到相邻节点的目标机网络层,将每个IP数据包封装为MAC数据帧 <√>物理层 #为数据端设备提供传送数据通路、传输数据。 ] //================================================================================================================================= <x>[4] 计算机网络术语 [ 1>>信道 = 会话 #信道通信 = 单工通信//单向 + 半双工通信//双向不及时 + 全双工通信//双向及时 2>>比特率 = 单个信道/会话的传输速率 [1KB=8Kb] 3>>吞吐量 = 单位时间全部会话/信道数据之和 4>>带宽 = 网络设备支持的最高速率 5>>时延 = 发送时延 + 传输时延 + 排队时延 + 处理时延 6>>RTT = 往返时间 7>>网络利用率 = 各个信道利用率的加权平均值 ] //================================================================================================================================= [5] >> 物理层 [ 机械特性 电气特性 功能特性 物理层流程 ----------------------------------------------------------------------------------------- <x> #数字信号=基带信号(频率低,能量小,传输近) #模拟信号=带通信号(频率高,能量大,传输远) ↑ ↑ | | <√> [PC1]---数字信号-->[调制解调器]--模拟信号--->[广域网]--模拟信号-->[调制解调器]--数字信号---集线器hub-->[PC2] <√> | 调幅/调相/调频 | | | | | | <√> | |-----|奈式准则-----| |-取样->数值分配->编码| | <√> |---------------------|-----|香农准则----------|--------------------| |#交叉线连接同类设备 <√> | | | | ↓ #直通线连接不同类设备 <√> ↓ ↓ | | 水晶头=直通线/交叉线 <√> __| ̄|__| ̄|__|(2进制码元) (8进制码元)| |->屏蔽双绞线 |<x> | |->无屏蔽双绞线 |->单极性归零码 | |->电缆 = 电视线 #多模光纤=同时传输多条光信号 |->单极性不归零码 | |->光缆 = 多模光纤/单模光纤 #单模光纤只有一束光直线传输 |->双极性归零码 | ↓ |->双极性不归零码 |信号在物理层的传输方式 <√> |->曼彻斯*** |->频分复用 #各个频率的模拟信号进行糅合传输,最后在解析 <√> |->差分曼彻斯*** |->统计时分复用 #带标识符 <√> | |->波分复用 #将各个光信号糅合传输,最后解析,类似于频分复用 <√> ↓ |->时分复用 #每个PC单独占据一个bite位 <√>#集线器Hub对接收到的信号进行再生整形放大,应用在物理层,拓展物理层长度,<100M ----------------------------------------------------------------------------------------- ] //================================================================================================================================= [6] >> 数据链路层 [ 数据链路层 #局域网 / \ / \ / \ <x> 点到点数据链路层 广播域数据链路层 #CSMA/CD带冲突检测的载波监听多路访问协议 <x> #数据帧=单播帧=PPP帧=MAC帧 | #数据帧=广播帧(1->n)/多播帧(n->n)=MAC帧 | | | | | | | ↓举例 | | 以太网 | <x> | #目前应用最普遍的局域网技术 <x> | #IEEE 802.3定义了有线以太网的物理层和数据链路层的介质访问控制 ↓ ↓ |------------------------------------------------------------------------------------------------------------------------| | [帧开始符]与数据内容一致,就在前面加[ESC] <√> FCS是CRC循环冗余校验的结果,判断帧是否正确 | | ↑ ↑ | <x> | 数据帧:[帧开始符][当前设备MAC+下一设备MAC][client-IP+server-IP][源port+目标port][数据][FCS][帧结束符] //数据链路层 | |------------------------------------------------------------------------------------------------------------------------| ] //================================================================================================================================= [7] >> 网络层 [ <x>1>>ARP协议(查找MAC) [ #广播目标主句IP,返回目标主机MAC地址 #ARP欺骗,ARP*** #各个局域网的网关进行ARP广播 ] <x>2>>ICMP协议(检测网络层是否畅通) [ ping <ip地址> #测试通路 tracer <ip地址> #跟踪数据 ] <x>3>>IGMP协议(多播协议) [ 周期性烧写哪些IP是组播地址,然后向该组播地址请求组播数据流 ] <x>4>>IP协议--如何选择路由路径 [ 静态路由 //管理员手动添加路由表 动态路由 [ <x>1>>RIP协议(周期性向附近的各个路由广播自己的路由表,其他路由器由此选择最优路径) <x>2>>OSPF协议 OSPF(Open Shortest Path First开放式最短路径优先) #连续走过16个路由器还没到就停止 ] ] <x>5>>IP数据包 [首部][数据部分] | | | ↓ --------------------------------------------------------------------------------------------------------------------- | 固定部分==20字节 | |[版本] #占4位,指IP协议的版本,通信双方使用的IP协议版本必须一致。广泛使用的IP协议版本号为4(即IPv4) | |[首部长度] #占4位,这个字段所表示数的单位是32位字长,例如IP的首部长度为1111=15时,首部长度就达到15*4=60字节 | |[服务类型] #占8位,用来获得更好的服务,但实际上一直没有被使用过 | |[总长度] #占16位,首部和数据之和的长度,总长度最大2^16-1字节 | |[标识] #占16位,每产生一个数据报,标识字段加1 | |[标志] #占3位,但只有2位有意义[][DF][MF] | |#MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的最后一个。 | |#DF(Don’t Fragment),意思是“不能分片”。只有当DF=0时才允许分片。 | |[片偏移] #占13位,相对用户数据字段的起点,该片从何处开始 | |[生存时间] #占8位,TTL(Time To Live)表明是数据报在网络中的寿命 | |[协议] #占8位,指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程 | |[首部校验和] #占16位,只检验数据报的首部,但不包括数据部分。数据报每经过一个路由器,都要重新计算一下首部检验和 | |[源地址] #占32位。 | |[目的地址] #占32位。 | |-------------------------------------------------------------------------------------------------------------------| | 可选部分[1~40字节] | --------------------------------------------------------------------------------------------------------------------- ] //================================================================================================================================= [8] >> 传输层 [ <√>UDP协议 #用户数据报协议 [ <√>1>>广播,多播.这类低延迟,低数据采用UDP传输 <√>2>>无需建立会话 --> 不可靠传输 <√>3>>数据量小,发送数据报,数据不需要分为数据段,所有叫做数据报 <x>4>>UDP数据报 -------------------------------------------------------------- [源IP地址][目的IP地址][0][17][UDP长度] #UDP长度==UDP首部长度 -------------------------------------------------------------- | ↓ [伪首部][源端口][目的端口][长度][校验和] #长度==UDP数据报长度 12字节 2字节 2字节 2字节 2字节 ---------------------------------------- | ↓ [UDP首部][报文数据] #UDP数据报(传输层) 20字节 --------------- | ↓ [IP首部][IP数据部分] #IP数据包(网络层) -------------------------------------------------------------- ] TCP协议 #传输层控制协议 [ <√>1>>建立会话进行传输 <x>2>>TCP报文段 ------------------------------------------------------------------------------------------------------ [源端口][目的端口][序号][确认号][数据偏移][保留][URG][ACK][PSH][RST][SYN][FIN][窗口][校验和][紧急指针] | ↓ [TCP首部][TCP数据部分] 20字节 ----------------------------------------------------------------------------------------------------- | ↓ [IP首部][IP数据部分] ------------------------------------------------------------------------------------------------------- #[序号]这是传输数据的第几个字节 #[确认号]准备接收第几个字节 #[数据偏移]数据部分是第几个字节开始 #[URG] = 1 --> 该数据抱优先发送 #[ACK] = 1 --> 确认号有效 #[SYN] = 1 --> 该数据报为握手数据报 #[PUSH] = 1 --> 该数据报优先提交给应用程序 #[RET] = 1 --> 重新建立会话 #[FIN] = 1 --> 释放会话连接 #[窗口] --> 接收端域发送端的缓冲区大小保持一致 [ 1>>发的时候连续发送N个数据包准备发第N+1个数据包时接收到第一个数据包的反馈信息说明第一个数据包已经安全传到了,就可以释放掉数据包1的缓存井缓存发送第N+1个数据包 2>>流量控制,通过实时改变接收端的接受窗口的大小相应的发送窗口也会相应改变达到流量控制的效果! ] ] <√>>>ARQ自动重传 == 超时重传 #一段时间没有收到确认数据段 A B |-->| | | |-->| ] TCP连接过程 [ <x>1>>建立连接 == 三次握手 [ A B | --SYN=1,ACK=0 ,seq=x--> |#客户端发送SYN报文,并发送序号X | <--SYN=1,ACK=x+1,seq=y-- |#服务端确认序号X+1,并发送序号Y | --SYN=1,ACK=Y+1,seq=z--> |#服务端确认序号Y+1,并发送序号Z ] 2>>数据传输 <x>3>>释放连接 == 四次握手 [ A B | --FIN=1,seq=x --> | | <--ACK=1,seq=m+1-- | | | | <--FIN=1,seq=y-- | | --ACK=1,seq=y+1--> | ] ] ] //================================================================================================================================= [9] 应用层 [ 服务 <√>http服务 =TCP + 80端口 <x>https服务 =TCP + 443端口 <x>rdp服务 = TCP + 3389端口 #远程桌面连接协议 <x>ftp服务 = TCP + 21端口 <x>SMTP服务 = TCP +23端口 #邮件发送协议 <x>POP3服务 = TCP + 110端口 #邮件接收协议 <x>SQL服务 = TCP + 1433端口 <x>DNS服务 = TCP/UDP + 53端口 [ ------------------------------------------------------------------------ <√> [根DNS] ←-----------|------------→ ↓ ↓ ↓ [.cn]←----→[.com]←-----→[,edu] #.CN = 中国 .edu = 教务 .com = 商业 ↑ | www.baidu.com 域名解析流程 #CN子DNS尝试解析www.baidu.com #访问根服务器查找到COM子DNS #COM子DNS尝试解析www.baidu.com #将解析到的IP返回给CN子DNS #CN子DNS将IP返回给用户 ------------------------------------------------------------------------ ] <√>telnet <IP地址> <端口号> #查看端口是否开启 <√>查看会话netstat -n <x>查看产生会话的进程netstat -nb <√>端口 = 熟知端口(1~1024) + 登记端口(1024~5000) + 用户端口(5000~65535) ]