OSI七层模型

TCP/IP四层模型

物理层 设备之间的比特流的传输 数据链路层 成帧 网路层 选路 传输层 传输前的错误检测,流量监控 会话层 会话管理同步 表示层 数据的表现形式 应用层 用户接口

Linux配置IP地址

  • ifconfig

      ifconfig eth0 192.168.1.130 netmask 255.255.255.0
    
  • setup

      yum install -y setuptool
    
  • 配置文件

#网卡信息文件
/etc/sysconfig/network-scripts/ifcfg-eth0

#主机名文件
/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=test

hostname test

#dns
/etc/resolv.conf

name服务器 114.114.114.114
search localhost        # 自动补全

linux网络命令

  • ifconfig

  • ifup,ifdown

  • netstat

      -t  tcp
      -u  udp
      -n  不使用域名服务名
      -l  listen
      -a  all
      -r  route
    
  • route

  • nslookup

yum install bind-utils

网络测试

  • ping 探测网络

  • telnet 远程管理与端口探测

  • traceroute 路由跟踪

  • wget

  • tcpdump -i 指定网卡 -nn 将数据包中的域名与服务转为ip和端口 -X 以16进制和ASCII码显示数据包内容 -port 指定端口

  • ssh

  • scp

其它

  • 三次握手

首先有一个前提,网络是不可靠的,然后事事有回应

最开始的客户端和服务器都是处理Closed,由于服务端不知道要和谁建立连接,所以被动的打开,然后监听端口,此时服务器处理Listen状态。

而客户端会主动打开,构建好tcb[SYN=1,seq=x]发送给服务器,此时客户端将状态改为syn_send(同步已发送)。

服务端接收到客户端发来的同步请求后,将状态改为syn_recv(同步已接收),同时构建好tcb[SYN=1,seq=y,ACK=1,ack=x+1]发送给客户端。

客户端接收到了服务端发来的tcb后,将状态改为established(就绪),也发送确认报文[ACK=1,sql=x+1,ack=y+1]。 此时客户端已经可以保证是可靠传输了,所以可以发送报文段了。

服务端在接收到了客户端相响应的报文段之后,也将状态改为established状态,至此,三次握手结束

  • 四次挥手

最开始的时候,客户端和服务器都是establish状态,然后是客户端主动关闭,服务器是被动关闭的。

客户端先发送一个FIN报文段,seq=结束的报文段序号+1,告诉服务器,客户端要关闭了,此时,客户端状态改为FIN-WAIT-1,等待服务器的反馈

服务器在收到客户端发来的fin包之后,会响应一个ack给客户端。同时服务器会通知应用程序需要关闭连接了,并将状态改为close-wait。

客户端收到ack后将状态改为fin-wait-2

由于服务器可能还有一些数据没处理完,所以需要一段时间的等待,处理完后服务器会再发送一条报文告诉客户端,服务器现在已经可以关闭了,并将服务器的状态由close-wait改为last-ack

客户端收到发来的消息后,响应一个ack报文,告知服务器知道你准备好关闭了,此时,客户端将close-wait-2状态改为time-wait,再等待两个最长报文段传输时间后,自动将客户端关闭。(为什么要等待两个传输时间?避免服务器未收到最后一个ack,给时间重发)

服务端收到消息后,就将last-ack改为closed。四次挥手结束.

其它

Copyright © axboy.cn 2019 all right reserved,powered by Gitbook该文件修订时间: 2020-07-27 03:53:54

results matching ""

    No results matching ""