网络服务

通讯设备+传输介质(网线)+计算机(个人pc)=计算机网络

MAC地址:硬件设备,定位网络设备的位置

OSI七层模型:

​ 物理层(不可靠传输):传输介质,组网,双绞线,同轴电缆等物理媒介----比特流

​ 数据链路层(可靠传输):MAC地址寻址,数据成帧、检测、重发,ARP协议----帧(数据传输的基本单位)

​ 网络层:将网络地址转化成物理地址,网络地址寻址,路由转发,IP协议

​ 传输层:提供端对端的数据交换、连接机制,端口

​ 会话层:提供点对点之间的通信连接

​ 表示层:数据格式化、翻译

​ 应用层:应用程序提供相关的服务

网络服务_第1张图片

TCP/IP的五层模型

物理层:物理介质,完成组网操作:光纤,双绞线

数据链路层:数据成帧,封装 以太网包头(双方的MAC地址)

​ MAC地址:48位二进制数,12十六进制表示,确定设备位置

网络层:​

		IP层加上双方的IP地址

​		IP协议: 网络寻址

​			网络地址、主机地址

​			IP地址分类: ABCDE、子网划分

​			子网掩码:与运算

​			路由

​					静态路由:手工路由表

​					动态路由:路由协议学习    OSPF  RIP

​					默认路由:缺省路由 0.0.0.0

​			路由器、网关

​					ARP  地址解析  ip------>mac

传输层:

​ 端口:数据包区分,IP+端口

​ UDP:简单,容易实现,不可靠传输

​ TCP:可靠传输(报文格式:20字节)

网络服务_第2张图片

路由

​ 从原地址出发如何到达目的地址(原地址和目的地址不在同一个子网中)

知道目标地址的网关地址

静态路由:手动构造路由表

动态路由:自动学习构造路由表,需要路由协议,如RIP或OSPF

默认路由:数据包中的目的地址找不到存在的其他路由时,路由器所选择的路由

路由器:实现不同子网间的连接

网关

​ 在网络层上的路由,可设置成路由器的地址

ARP协议:以广播的形式寻找该局域网上的IP地址的MAC地址

端口:0-----65535之间的一个整数(0-----1023的端口被系统占用)

Socket:将主机+端口封装起来

UDP/TCP协议

​ UDP:不可靠传输,比较简单,容易实现

​ TCP:可靠传输,每发出一个数据包都要求确认。
网络服务_第3张图片

三次握手:(创建连接)

网络服务_第4张图片

第一次握手:建立连接,客户端发送syn包(SYN=1)到服务器,并进入SYN_SENT状态,等待服务器确认

第二次握手:服务器要确认客户的SYN(ACK=1,序号ack=x+1),同时发送一个SYN包(SYN=1,seq=y),即SYN+ACK包,服务器进入SYN_RCVD状态

第三次握手:客户端收到服务器的SYN+ACK包,客户端向服务器发送确认包ACK(ack=y+1),seq=x+1,此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手

SYN攻击:(在第一次发起连接请求时发生攻击)

客户端在短时间伪造大量的SYN请求连接,服务器回复确认包,并等待客户端的确认,由于源地址不存在,服务器需要不断的重发直至超时,这些伪造的SYN包将长时间占用未连接队列,正常的SYN请求被丢弃,目标系统运行缓慢,严重会使网络瘫痪

四次挥手:(断开连接)

网络服务_第5张图片

第一次挥手:客户端发出连接释放报文,并且停止发送数据。释放数据报文首部,FIN=1,其序号为seq=u,此时,客户端进入FIN-WAIT-1(终止等待1)状态

第二次挥手:服务器收到释放连接请求,发出确认报文,ACK=1,序号为:ack=u+1,并且带上自己的序列号seq=v,此时,服务器进入CLOSE-WAIT(关闭等待)状态。

客户端收到服务器的确认请求后,此时,客户端就进入FIN-WAIT-2(终止等待2)状态

第三次挥手:服务器将最后的数据发送完毕后,向客户端发送连接释放报文,FIN=1,ACK=1,seq=w,ack=u+1,此时,服务器就进入了LAST-ACK(最后确认)状态

第四次挥手:客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1,而自己的序列号是seq=u+1,此时,客户端进入TIME-WAIT(时间等待)状态。此时TCP连接还没有释放,必须经过2MSL(最长报文段寿命)后,客户端撤销相应的TCB后,才进入CLOSED状态。

服务器收到客户端发出的确认,立即进入CLOSED状态。

可以看到,服务器结束TCP连接的时间要比客户端早一些。

自顶向下的数据包结构

网络服务_第6张图片

第一步:主机向DNS发送请求,DNS服务器做出响应,告诉我们IP地址

第二步:判断本机IP地址和所要访问的IP地址是不是在同一个子网络,用子网掩码与IP地址做与运算。

第三步:确定发送的各种必要参数后,发送数据包

​ 1、应用层数据包,是单纯的数据,没有附带任何信息;假设有一个2080长度的数据包。

​ 2、传输层数据包(TCP/UDP数据包),对应用层的数据包增加我们的TCP/UDP数据包(加上端口号等必要的寻址信息作为头部),包头

TCP标头长度为20字节,加上嵌入的HTTP的数据包,总长度变成2100字节。

​ 3、网络层数据包(IP数据包),嵌入IP数据包需要设置双方的IP地址

IP数据包的标头长度为20字节,加上嵌入的TCP数据包,总长度变为2120字节。

​ 4、数据链路层数据包(以太网数据包),嵌入以太网数据包需要设置双方的MAC地址,发送方为本机的MAC地址,接收方为网关的MAC地址(通过ARP协议得到)

因为以太网数据包的数据部分,最大长度为1500字节,而现在IP数据包长度为2120字节,因此IP数据包必须分割成两个包。因为每个包都有自己的IP标头(20字节),所以两个包的IP数据包的长度分别为1500、540.

服务端响应

网络服务_第7张图片

所要访问的服务器收到了两个以太网数据包。根据IP标头的序号,将两个包拼起来,取出完整的TCP数据包,读出里面的“HTTP请求”,做出“HTTP响应”,再用TCP协议发回来。本机收到HTTP响应后,可以将网页显示出来,完成一次网络通信。

VLAN

​ 逻辑上的端口,将连续的端口划分在同一局域网中

trunk

​ 将两个网络中的所有VLAN串连起来

网络相关命令

netstat:

显示本机的网络连接,运行端口,路由表等信息

​ -a:列出系统中所有连接

​ - t:列出TCP的连接

​ -u:列出UDP连接

​ -l:列出所有正在监听的服务

​ -n:用端口显示服务,而不是服务名

​ -p:现实服务的进程ID PID

​ -s:按协议统计

​ -c:指每隔固定的时间执行的命令

​ -r:路由信息

Proto RefCnt Flags Type State I-Node Path
协议 连接到的进程数量 连接标识 访问类型 状态 程序文件的节点号 路径

ss:

显示当前网络接口状态

​ -t:tcp协议连接

​ -u:UDP连接

​ -l:监听状态的连接

​ -a:显示所有连接

​ -p:显示PID

​ -m:显示连接使用的内存信息

traceroute:

获取当前主机到目标主机经过的路由

mtr:

​ -r:以报告的形式显示

​ -a:设定发送数据包的IP地址

​ -s:指定ping包大小

wget、scp:

​ --nd --no-directories,忽略目录层级

​ -r:下载目录结构

​ -c:断点续传

​ -o filename:重命名为filename

​ -q:不输出任何信息

​ -t num:重试次数num,默认20次 -t 0 不限制次数

​ --limit-rate=num

​ -b:后台下载

形式显示

​ -a:设定发送数据包的IP地址

​ -s:指定ping包大小

wget、scp:

​ --nd --no-directories,忽略目录层级

​ -r:下载目录结构

​ -c:断点续传

​ -o filename:重命名为filename

​ -q:不输出任何信息

​ -t num:重试次数num,默认20次 -t 0 不限制次数

​ --limit-rate=num

​ -b:后台下载

你可能感兴趣的:(网络服务)