美文网首页
第七周作业

第七周作业

作者: 念念OPS | 来源:发表于2020-11-30 19:44 被阅读0次

    1、简述osi七层模型和TCP/IP五层模型
    2、总结描述TCP三次握手四次挥手
    3、描述TCP和UDP区别
    4、总结ip分类以及每个分类可以分配的IP数量
    5、总结IP配置方法

    1、简述osi七层模型和TCP/IP五层模型

    1、简述osi七层模型和TCP/IP五层模型

    osi七层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
                    下-----------------------------------------------上
                    外-----------------------------------------------里
                    物理层传输比特流bit,有同轴电缆、网线、光纤灯
                    数据链路层传输数据帧frame
                    网络层传输数据包Packet,提供路由选择功能
                    传输层传输数据段
                    会话层 负责在数据传输中设置和维护电脑网络中两台电脑之间的通信连接。
                    表示层 把数据转换为能与接收者的系统格式兼容并适合传输的格式  
                    应用层 提供为应用软件而设的接口,以设置与另一应用软件之间的通信。例如:HTTP、HTTPS、FTP、                                 TELNET、SSH、SMTP、POP3、MySQL等 
    TCP/IP  物理链路层(物理层、数据链路层)、internet层、传输层、应用层
                    下-----------------------------------------------上
                    外-----------------------------------------------里
    

    2、总结描述TCP三次握手四次挥手

    TCP三次握手

    2、总结描述TCP三次握手四次挥手
    三次握手
    clientA<--------->serverB
    第一次握手:A发送标志位SYN=1其它位=0的TCP报文到B,seq序列号相对于B是0,真实序列号=x,ack确认号=0
    第二次握手:B发送标志位SYN=1 ACK=1的TCP报文到A,seq序列号相对于A是0,真实序列号=y,ack确认号=x+1
    第三次握手:A发送标志位ACK=1的TCP报文到B,seq序列号=x+1,ack确认号=y+1
    #为什么是三次而不是2次或者4次握手?
    第一次握手和第二次握手:A发送报文给B,B收到并回应。这点确定了A到B是通的,A计算机收到第二次握手来自B的确认报文后,A计算机就会知道A到B是通的。但是B计算机并不清楚自己回应的报文A有没有收到,所以A第三次回应B一个确认的报文,告诉B计算机 链路是通的。
    所以最少建立关系是3次 而不是2次。四次握手就多余了。
    #状态基的改变看下图
    
    #滑动窗口
    每次client和server发送消息都会确认,很麻烦。
    那么client发送三次报文,然后确认一次 显得很合理。
    但是有可能双方接收的不一致 所以商量的是2次一回应还是3次一回应
    
    #半连接队列sync和全连接队列accept
    半连接 /proc/sys/net/ipv4/tcp_max_syn_backlog
    全连接 /proc/sys/net/core/somaxconn
    处在第二次握手状态,但是还没来得及收到A的第三次握手报文时候,服务器会记录clientA的主机,存在半连接队列。
    server内核会开辟空间sync queue记录client 等待client的第三次的回应报文,此时就是属于sync半连接
    accept全连接就是处于TCP状态基Established状态 已链接状态。server内核会开辟空间 accept queue记录已经完成三次握手的主机。
    默认半连接和全连接都是128,假如生成主机不修改,那么半连接+全连接总共才256,
    提供服务的主机的某个程序比如apache只能同时能够接受最多256个client访问 显然不合理。
    
    #TCP超时重传
    /proc/sys/net/ipv4/tcp_retries1,指定在底层IP接管之前TCP最少执行的重传次数,默认值是3
    /proc/sys/net/ipv4/tcp_retries2,指定连接放弃前TCP最多可以执行的重传次数,默认值15(一
    般对应13~30min)
    
    TCP三次握手.png
    三次握手第一次握手.png 三次握手第二次握手.png 三次握手第三次握手.png

    TCP第四次挥手

    四次挥手
    clientA<---------->serverB
    第一次挥手:A发送标志位FIN=1的报文,序列号seq=x,请求断开连接
    第二次挥手:B收到报文后回复A 标志位ACK=1,序列号seq=y,ack=x+1
    第三次挥手:B(完成所有数据传输后)发送给A请求断开连接的报文。标志位FIN=1 ACK=1,seq=z ack=x+1
    第四次挥手:A收到报文后 发送给B 标志位ACK=1 seq=x+1 ack=z+1的报文
    #为什么是四次挥手?
    A和B说分手(第一次挥手FIN位为1)
    B回应收到啦
    B此时可能收到分手报文后,还有数据没有完全给A。等发送完数据后,B发送FIN=1 我也要和你分手的报文
    A收到第三次挥手报文后,回应B,我收到啦 咱俩正式解除关系了
    #半关闭状态
    处于FIN_WAIT_2状态的客户端需要等待服务器发送结束报文段,才能转移至TIME_WAIT状态,否则它
    将一直停留在这个状态。如果不是为了在半关闭状态下继续接收数据,连接长时间地停留在
    FIN_WAIT_2状态并无益处。连接停留在FIN_WAIT_2状态的情况可能发生在:客户端执行半关闭后,未
    等服务器关闭连接就强行退出了。此时客户端连接由内核来接管,可称之为孤儿连接(和孤儿进程类
    似)
    Linux为了防止孤儿连接长时间存留在内核中,定义了两个内核参数:
    /proc/sys/net/ipv4/tcp_max_orphans 指定内核能接管的孤儿连接数目
    /proc/sys/net/ipv4/tcp_fin_timeout 指定孤儿连接在内核中生存的时间
    #为什么需要TIME-WAIT等待时间?
    A和B通讯过程中 A收到B的FIN挥手报文后,网络问题 有可能B给A的数据报文还没FIN到,所以为了确保接收到所有的数据,A收到B的FIN报文不会立马进入closed状态,会等待2MSL时间。确保数据无丢失
    
    TCP四次挥手.png

    3、描述TCP和UDP区别

    3、描述TCP和UDP区别
    TCP面向连接,三次握手四次挥手,有确认机制,滑动窗口,超时重传机制,拥塞控制
    UDP包头就是源端口 目的端口
    

    4、总结ip分类以及每个分类可以分配的IP数量

    4、总结ip分类以及每个分类可以分配的IP数量
    A 
    0 0000000 - 0 1111111.X.Y.Z : 0-127.X.Y.Z
    网络ID位是最高8位,主机ID是24位低位
    网络数:126=2^7(可变是的网络ID位数)-2
    每个网络中的主机数:2^24-2=16777214
    默认子网掩码:255.0.0.0
    私网地址:10.0.0.0
    范例:114.114.114.114,8.8.8.8,1.1.1.1,58.87.87.99,119.29.29.29
    
    B
    10 000000 - 10 111111.X.Y.Z:128-191.X.Y.Z
    网络ID位是最高16位,主机ID是16位低位
    网络数:2^14=16384
    每个网络中的主机数:2^16-2=65534
    默认子网掩码:255.255.0.0
    私网地址:172.16.0.0-172.31.0.0
    范例:180.76.76.76,172.16.0.1
    
    C
    110 0 0000 - 110 1 1111.X.Y.Z: 192-223.X.Y.Z
    网络ID位是最高24位,主机ID是8位低位
    网络数:2^21=2097152
    每个网络中的主机数:2^8-2=254
    默认子网掩码:255.255.255.0
    私网地址:192.168.0.0-192.168.255.0
    范例: 223.6.6.6
    
    D
    组(多)播,1110 0000 - 1110 1111.X.Y.Z: 224-239.X.Y.Z
    
    E
    保留未使用,240-255
    
    特殊地址
    0.0.0.0
    0.0.0.0不是一个真正意义上的IP地址。它表示所有不清楚的主机和目的网络
    255.255.255.255
    
    限制广播地址。对本机来说,这个地址指本网段内(同一广播域)的所有主机
    127.0.0.1~127.255.255.254
    
    本机回环地址,主要用于测试。在传输介质上永远不应该出现目的地址为“127.0.0.1”的 数据包
    224.0.0.0到239.255.255.255
    
    组播地址,224.0.0.1特指所有主机,224.0.0.2特指所有路由器。224.0.0.5指OSPF 路由器,地址
    多用于一些特定的程序以及多媒体程序
    169.254.x.x
    
    如果Windows主机使用了DHCP自动分配IP地址,而又无法从DHCP服务器获取地址,系统会为主
    机分配这样地址
    
    保留地址
    网络地址:主机ID全是0 
    \广播地址:主机ID全是1
    

    5、总结IP配置方法

    5、总结IP配置方法
    #临时
    #ifconfig
    #对一个网卡设置ip地址
    root@test8  ~]# ifconfig eth1 10.0.0.20/24
    root@test8  ~]# ifconfig eth1
    eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 10.0.0.20  netmask 255.255.255.0  broadcast 10.0.0.255
            inet6 fe80::a016:2814:2921:b8b5  prefixlen 64  scopeid 0x20<link>
            ether 00:0c:29:aa:b6:89  txqueuelen 1000  (Ethernet)
            RX packets 3656  bytes 321912 (314.3 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 171  bytes 31738 (30.9 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    bogon:~ wangxw$ ping 10.0.0.20 -c1
    PING 10.0.0.20 (10.0.0.20): 56 data bytes
    64 bytes from 10.0.0.20: icmp_seq=0 ttl=64 time=0.339 ms
    
    --- 10.0.0.20 ping statistics ---
    1 packets transmitted, 1 packets received, 0.0% packet loss
    round-trip min/avg/max/stddev = 0.339/0.339/0.339/0.000 ms
    
    #临时清除网卡ip地址
    root@test8  ~]# ifconfig eth1 0.0.0.0/0
    SIOCSIFNETMASK: Cannot assign requested address
    root@test8  ~]# ifconfig eth1
    eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet6 fe80::a016:2814:2921:b8b5  prefixlen 64  scopeid 0x20<link>
            ether 00:0c:29:aa:b6:89  txqueuelen 1000  (Ethernet)
            RX packets 3677  bytes 323469 (315.8 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 171  bytes 31738 (30.9 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    #临时禁用网卡eth1
    root@test8  ~]# ifconfig eth1 up
    root@test8  ~]# mii-tool eth1
    eth1: link ok
    root@test8  ~]# ifconfig eth1 down
    root@test8  ~]# mii-tool eth1
    eth1: no link
    root@test8  ~]# ifconfig
    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 10.0.0.8  netmask 255.255.255.0  broadcast 10.0.0.255
            inet6 fe80::20c:29ff:feaa:b67f  prefixlen 64  scopeid 0x20<link>
            ether 00:0c:29:aa:b6:7f  txqueuelen 1000  (Ethernet)
            RX packets 3654  bytes 821150 (801.9 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 1970  bytes 322629 (315.0 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 ::1  prefixlen 128  scopeid 0x10<host>
            loop  txqueuelen 1000  (Local Loopback)
            RX packets 83  bytes 5980 (5.8 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 83  bytes 5980 (5.8 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    #禁用网卡后ifconfig看不到网卡eth1了,该命令只能看到活动网卡,通过ifconfig -a可以看到所有网卡
    #启动网卡
    ifconfig eth1 up
    #一块网卡多个ip地址
    #ifconfig eth1:1 10.0.0.12/24
    root@test8  ~]# ifconfig
    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 10.0.0.8  netmask 255.255.255.0  broadcast 10.0.0.255
            inet6 fe80::20c:29ff:feaa:b67f  prefixlen 64  scopeid 0x20<link>
            ether 00:0c:29:aa:b6:7f  txqueuelen 1000  (Ethernet)
            RX packets 206  bytes 17915 (17.4 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 131  bytes 15537 (15.1 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 10.0.0.11  netmask 255.255.255.0  broadcast 10.0.0.255
            inet6 fe80::a016:2814:2921:b8b5  prefixlen 64  scopeid 0x20<link>
            ether 00:0c:29:aa:b6:89  txqueuelen 1000  (Ethernet)
            RX packets 28  bytes 2507 (2.4 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 13  bytes 1323 (1.2 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    eth1:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 10.0.0.12  netmask 255.255.255.0  broadcast 10.0.0.255
            ether 00:0c:29:aa:b6:89  txqueuelen 1000  (Ethernet)
    
    lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 ::1  prefixlen 128  scopeid 0x10<host>
            loop  txqueuelen 1000  (Local Loopback)
            RX packets 24  bytes 2040 (1.9 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 24  bytes 2040 (1.9 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    #ip
    #禁用网卡
    ip link set eth0 down
    #启用网卡
    ip link set eth0 up
    #网卡改名
    ip link set eth1 name abc
    #设置网卡ip
    ip addr add 10.0.0.11/24 dev eth1 
    注意路由问题,假如eth1和eth0的ip是同网段,路由默认10.0.0.0/24从eth0出去。此时如果同网段则变成了10.0.0.0/24从eth1出去 会断网
    #设置IP 网卡子接口
    ip addr add 192.168.0.112/24 dev eth1 label eth1:1
    #清除网卡IP
    ip addr flush dev eth1
    
    
    #写入配置文件,永久保存
    #网卡配置文件
    #centos6 7 8
    /etc/sysconfig/network-scripts/ifcfg-interface
    root@test8  network-scripts]# cat ifcfg-eth0
    DEVICE=eth0
    NAME=eth0
    BOOTPROTO=static
    IPADDR=10.0.0.8
    PREFIX=24
    GATEWAY=10.0.0.2
    DNS1=223.6.6.6
    DNS2=223.5.5.5
    ONBOOT=yes
    #ubuntu
    /etc/netplan/00-installer-config.yaml
    10:39:31 wang@ubuntu  netplan]$ cat 00-installer-config.yaml
    # This is the network config written by 'subiquity'
    network:
      ethernets:
        eth0:
          addresses:
          - 10.0.0.9/24
          - 10.0.0.10/24
          gateway4: 10.0.0.2
          nameservers:
            search: [magedu.com,magedu.org]
            addresses:
            - 223.5.5.5
            - 223.6.6.6
      version: 2
      renderer: networkd
     
    #DNS配置文件
    #centos
    /etc/resolv.conf
    #ubuntu
    resolvectl status
    
    #主机名
    #centos6
    /etc/network
    #centos7 8
    /etc/hostname
    #ubuntu
    /etc/hostname
    
    #主机名和ip的映射
    /etc/hosts
    
    #路由相关配置文件
    /etc/sysconfig/network-scripts/route-interface
    两种风格:
    (1) TARGET via GW
    如:10.0.0.0/8 via 172.16.0.1
    (2) 每三行定义一条路由
    ADDRESS#=TARGET
    NETMASK#=mask
    GATEWAY#=GW
    
    #centos6
    service network restart
    #7 8
    nmcli connection reload ;nmcli connection up eth1
    # ubuntu
    netplan apply
    

    相关文章

      网友评论

          本文标题:第七周作业

          本文链接:https://www.haomeiwen.com/subject/tojdwktx.html