您的位置:首页 > 运维架构 > Linux

Linux学习第十五节课-网络基本概念和TCP、UDP协议

2018-08-20 19:47 609 查看
Linux学习第十五节课
------------------------------------------------------------------------------------------------------------------------------------------

冲突域:如果几台设备同时向一台设备发送数据产生冲突,则这几台设备处于一个冲突域中,反之不在一个冲突域
总线拓扑:总线不能断



星型拓扑:中间交换机不可以故障



扩展星型拓扑



环形拓扑



双环拓扑



全网状拓扑



部分网状拓扑



了解主机到主机通信
旧模型
专有产品

由一个厂商控制应用程序和嵌入的软件
基于标准的模型
多厂商软件
分层方法

网络模型
OSI:开放系统互联
ISO:国际标准化组织
逻辑寻址:人为指定ip地址以便于管理



下层只为相邻的上层提供服务

物理层:二进制传输
为启动、维护以及关闭物理链路定义了电器规范、机械规范、过程规范和功能规范,数据格式为0101……
数据链路层:访问介质
定义如何格式化数据以便进行传输以及如何控制对网络的访问,数据格式为帧;
支持错误检测;
MAC地址在数据链路层定义
网络层:数据传输
路由数据包;
选择传递数据的最佳路径;
支持逻辑寻址和路径选择
传输层:传输问题
确保数据传输的可靠性;建立、维护和终止虚拟电路;通过错误检测和恢复;
信息流控制来保障可靠性
会话层:主机间通信
建立、管理和终止应用之间的会话
表示层:数据表示
确保接受系统可以读出该数据;
格式化数据;
构建数据;
协商用于应用层的数据传输语法;
提供加密
应用层:网络进程访问应用层
为应用程序进程(例如电子邮件、文件传输和终端仿真)提供网络服务;
提供用户身份验证

数据封装:按照七层模型从上到下的顺序对数据进行处理,在自己的设备上完成数据封装



数据解封



FCS:校验位

对等通信



PDU
PDU: Protocol Data Unit,协议数据单元是指对等层次之间传递的数据单位

物理层的PDU是数据位bit

数据链路层的PDU是数据帧frame

网络层的PDU是数据包packet

传输层的PDU是数据段segment

其他更高层次的PDU是消息message

三种通讯模式
单播:数据报文地址内的发送目标为1台设备

广播:数据发送目标为一定范围内所有设备,广播越多,对网络干扰越大

组播(多播):数据发送目标为多组设备

单工:目标主机和本主机之间通讯为单向,有去无回,比如电视
半双工:目标主机和本主机之间通讯为双向的,数据传输为轮流传输,比如对讲机

全双工:目标主机和本主机之间通讯为双向的,数据传输为同时传输,比如视频聊天

局域网:Local Area Network
基于广播机制通讯

广域网

基于点对点机制通讯

网线:UTP非屏蔽式双绞线

STP屏蔽式双绞线,加一层金属保护,增强抗干扰

T568A线序:绿白、绿、橙白、蓝、蓝白、橙、棕白、棕
T568B线序:橙白、橙、绿白、蓝、蓝白、绿、棕白、棕

百兆以内用到4根线:1、2、3、6,12发,36接

千兆以内用到全部线

两边线序一样称作UTP直通线

T568A和T568B互为UTP交叉线

因为现在硬件设备可以自动识别T568A和T568B,因此普遍使用T568B线
双绞线传输最远距离为100米

GBIC:千兆电信号转换为光信号的接口器件

以太网:是数据链路层的协议之一(协议里有PPPOE、以太网、高级链路控制协议、帧中继、异步传输模式),属于局域网协议,它既定义了双绞线的标准,又定义了数据帧的格式
帧:frame

帧的结构 : 前导信息 目标地址 源地址 类型 数据 校验位

位 : 8 6 6 2 46-1500 4

类型是上层类型编号,用来让计算机识别位于哪一层

数据包括从网络层、传输层、会话层、表现层、app、data的数据

冲突检测的载波侦听多路访问CSMA/CD

早期以太网协议中设备低于1024台,否则冲突过多

Hub:多端口中继器,工作在物理层
Hub并不记忆该信息包是由哪个MAC地址发出,哪个MAC地址在Hub的哪个端口

Hub的特点:共享带宽、半双工

Hub性能差、不安全

ISO七层网络模型,但实际工作中没有应用到这么多,目前使用的是TCP/IP协议
以太网桥:计算机通过Hub连接到以太网桥,可以记录计算机在哪个域,从而在以后的使用中将数据不走其它线路而直接送达目标计算机

交换机:直接连接计算机,每个接口都是一个独立的冲突域,全双工机制,大大提升了速率,可以隔断冲突域,但不能隔断广播域

交换机工作在数据链路层

以太网桥:计算机通过Hub连接到以太网桥,可以记录计算机在哪个域,从而在以后的使用中将数据不走其它线路而直接送达目标计算机

交换机:直接连接计算机,每个接口都是一个独立的冲突域,全双工机制,大大提升了速率,可以隔断冲突域,但不能隔断广播域

交换机工作在数据链路层

减少冲突域内或者广播域内计算机可以提升网络性能
交换机可以隔断冲突域
路由器可以隔断广播域
路由表不是路由器专有的,PC也有,设备依靠路由表寻找数据的转发路径

路由器:分隔广播域
选择路由表中到达目标最好的路径
维护和检查路由信息
连接广域网

网卡工作在数据链路层
ACL:访问控制列表

路由器:路由器工作在网络层

路由表:route table,路由表组成
网络地址:分析目标地址
接口:数据有可能从路由器的哪个出口出来,哪个就是接口
网关:目标网络与发数据的设备不在一个网段内,下一个路由器邻近主配置路由器的接口ip就是网关,线路和路由器连接的口网关不用配置
metric:可以理解为跃点数,该值越小,路由选择此路径优先级越高

VLAN:虚拟局域网,可以看作是广播域,是一种逻辑网络
特点:分隔广播域、安全、灵活管理
trunk:公共干道接口,不属于某个单独的vlan,多个vlan数据都会使用该接口
802.1Q:trunk上加vlan标签的协议,使得数据可以跨vlan传输

分层的网络架构
核心层:Core Layer,快速转发数据
分布层:Distribution Layer,用路由器隔开,设置访问权限
访问层:AccessLayer,先将设备连入网络,汇入分布层

STP:生成树协议,解决交换机回环问题,是一种动态算法

TCP/IP协议
Transmission Control Protocol / Internet Protocol
传输控制协议 / 因特网互联网协议
1983年取代了旧的网络控制协议NCP
定义了四层

应用层协议
File transfer
–FTP
–TFTP
–Network File System
E-mail
–Simple Mail Transfer Protocol
Remote login
–Telnet
–rlogin
Network management
–Simple Network Management Protocol
Name management
–Domain Name System

传输层两大协议:UDP和TCP
可靠性
传输效率
连接类型
面向连接
非面向连接
协议TCPUDP
按序号先后接收数据YesNo
用途
邮件
文件共享
下载
音频
视频
TCP特性
工作在传输层
面向连接协议:确认对方与自己有稳定的网络状态
全双工协议:可以同时传输数据
半关闭:单方面关闭数据连接
错误检查
将数据打包成段,排序
确认机制
数据恢复,重传
流量控制,滑动窗口
拥塞控制,慢启动和拥塞避免算法

传输层报文头部结构
TCP包头



源端口号从0-65535,即216个端口号
序号:靠序号实现数据包可靠传输
确认号:期望对方下次发送数据包的编号,用小写ack表示
序号和确认号结合起来可以实现数据的安全通信
数据偏移:说明报文有多长
标记位:占6位,其中含义有
URG:表示本报文段中发送的数据是否包含紧急数据。后面的紧急指针字段(urgent pointer)只有当URG=1时才有效
ACK:确认位,表示是否前面确认号字段是否有效。只有当ACK=1时,前面的确认号字段才有效。TCP规定,连接建立后,ACK必须为1,带ACK标志的TCP报文段称为确认报文段,例如ACK12表示本设备希望对方下次发送第12号数据包
PSH:提示接收端应用程序应该立即从TCP接收缓冲区中读走数据,为接收后续数据腾出空间。如果为1,则表示对方应当立即把数据提交给上层应用,而不是缓存起来,如果应用程序不将接收到的数据读走,就会一直停留在TCP接收缓冲区中
RST:如果收到一个RST=1的报文,说明与主机的连接出现了严重错误(如主机崩溃),必须释放连接,然后再重新建立连接。或者说明上次发送给主机的数据有问题,主机拒绝响应,带RST标志的TCP报文段称为复位报文段
SYN:同步位,在建立连接时使用,用来同步序号。当SYN=1,ACK=0时,表示这是一个请求建立连接的报文段;当SYN=1,ACK=1时,表示对方同意建立连接。SYN=1,同步位说明这是一个请求建立连接或同意建立连接的报文。只有在前两次握手中SYN才置为1,带SYN标志的TCP报文段称为同步报文段
FIN:分手位,表示通知对方本端要关闭连接了,标记数据是否发送完毕。如果FIN=1,即告诉对方:“我的数据已经发送完毕,你可以释放连接了”,带FIN标志的TCP报文段称为结束报文段

窗口:表示发送设备发多少个包接收设备会确认1次,协商双方能接收多少数据

TCP三次握手



前三步确定稳定的网络状态,之后可以正常通讯
图中seq表明设备自身的该文件编号

TCP四次挥手



11种有限状态机
CLOSED 没有任何连接状态
LISTEN 侦听状态,等待来自远方TCP端口的连接请求
SYN-SENT 在发送连接请求后,等待对方确认
SYN-RECEIVED 在收到和发送一个连接请求后,等待对方确认
ESTABLISHED 代表传输连接建立,双方进入数据传送状态
FIN-WAIT-1 主动关闭,主机已发送关闭连接请求,等待对方确认
FIN-WAIT-2 主动关闭,主机已收到对方关闭传输连接确认,等待对方发送关闭传输连接请求
TIME-WAIT 完成双向传输连接关闭,等待所有分组消失
CLOSE-WAIT 被动关闭,收到对方发来的关闭连接请求,并已确认
LAST-ACK 被动关闭,等待最后一个关闭传输连接确认,并等待所有分组消失
CLOSING 双方同时尝试关闭传输连接,等待对方确认

孤儿连接: 客户端执行半关闭后,未等服务器关闭连接就强行退出了,此时客户端连接由内核来接管

DOS×××:拒绝服务×××,伪造大量ip,对服务器进行访问,使得服务器的回应长时间无响应,占据大量访问数,从而使得正常用户无法正常访问

协议端口
FTP 用TCP21端口
Tlenet用TCP23端口
Http用TCP80端口
DNS用TCP 53和UDP53端口
TFTP用UDP69端口
SNMP用UDP161端口

传输层通过port号,确定应用层协议
Port number:
tcp:传输控制协议,面向连接的协议;通信前需要建立虚拟链路;结束后拆除链路
0-65535
udp:User Datagram Protocol,无连接的协议
0-65535
IANA:互联网数字分配机构(负责域名,数字资源,协议分配)
0-1023:系统端口或特权端口(仅管理员可用) ,众所周知,永久的分配给固定的系统应用使用,22/tcp(ssh), 80/tcp(http), 443/tcp(https)
1024-49151:用户端口或注册端口,但要求并不严格,分配给程序注册为某应用使用,1433/tcp(SqlServer), 1521/tcp(oracle), 3306/tcp(mysql), 11211/tcp/udp(memcached)
49152-65535:动态端口或私有端口,客户端程序随机使用的端口,其范围的定义:/proc/sys/net/ipv4/ip_local_port_range

TCP超时重传
异常网络状况下(开始出现超时或丢包),TCP控制数据传输以保证其承诺的可靠服务
TCP服务必须能够重传超时时间内未收到确认的TCP报文段。为此,TCP模块为每个TCP报文段都维护一个重传定时器,该定时器在TCP报文段第一次被发送时启动。如果超时时间内未收 到接收方的应答,TCP模块将重传TCP报文段并重置定时器。至于下次重传的超时时间如何选择,以及最多执行多少次重传,就是TCP的重传策略

与TCP超时重传相关的两个内核参数:
/proc/sys/net/ipv4/tcp_retries1,指定在底层IP接管之前TCP最少执行的重传次数,默认值是3
/proc/sys/net/ipv4/tcp_retries2,指定连接放弃前TCP最多可以执行的重传次数,默认值15(一般对应13~30min)

拥塞控制
网络中的带宽、交换结点中的缓存和处理机等,都是网络的资源。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可承受的能力,网络的性能就会变坏。这种情况就叫做拥塞
TCP为提高网络利用率,降低丢包率,并保证网络资源对每条数据流的公平性。即所谓的拥塞控制
TCP拥塞控制的标准文档是RFC 5681,其中详细介绍了拥塞控制的四个部分:慢启动(slow start)、拥塞避免(congestion avoidance)、快速重传(fast retransmit)和快速恢复(fast recovery)。拥塞控制算法在Linux下有多种实现,比如reno算法、vegas算法和cubic算法等。它们或者部分或者全部实现了上述四个部分
当前所使用的拥塞控制算法,/proc/sys/net/ipv4/tcp_congestion_control

UDP特性
工作在传输层
提供不可靠的网络访问
非面向连接协议
有限的错误检查
传输性能高
无数据恢复特性

UDP包头



16位源端口号
16位目标端口号
16位UDP长度
16位UDP校验码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐