一、简述OSI七层模型和TCP/IP五层模型

1. OSI七层模型

 物理层:二进制传输,为启动、维护以及关闭物理链路定义了电气规范、机械规范、过程规范和功能规范;实际的最终信号的传输是通过物理层实现的。通过物理介质传输0-1 比特流。常用的设备有(各种物理设备)集线器、中继器、调制解调器、网线、双绞线、同轴电缆,这些都是物理层的传输介质。 传输的单位是比特。

 数据链路层:将比特组合成字节,再将字节组合成帧,使用数据链路层地址(以太网使用的是 MAC 地址)来访问介质,并进行差错检测。在物理层提供的服务基础之上,负责在通信的实体之间创建数据链路。传输以帧为单位的数据包。

 网络层:通过 IP 寻址来创建两个网络节点之间的连接,为源主机的传输层送来的分组,选择合适的路由和交换节点,正确无误的按照 IP 地址传送给目的主机的传输层。就是通常说的 IP 层,使用 IP协议和路由器的路由选择信息。数据传输单位是分组。IP 地址、路由器、IP 协议。

 传输层:创建了主机之间的端到端的连接;传输层的作用,是为上层协议提供端到端的可靠的透明的数据传输服务,包括差错控制和流量控制等问题。我们通常说的TCP、UDP就是在这一层。端口号即是这里的“ 端 ”。TCP 协议、UDP 协议。

 会话层:负责创建、管理和终止表示层实体之间的通信会话。

 表示层:提供各种用于应用层数据的编码和转换功能,确保一个主机的应用层发送的数据能被另一个主机的应用层识别。如果有必要,该层可以提供一种标准的表示形式,用于将计算机内部的多种数据格式转换成通信中采用的标准表示形式。

 应用层:OSI 参考模型中最靠近用户的一层,为计算机用户提供应用接口,也为用户直接提供各种网络服务。我们常见应用层的网络服务协议有:HTTP,HTTPS,FTP,POP3、SMTP等。

2. TCP/IP五层模型

 物理层:对应OSI七层模型的物理层。

 数据链接层:对应OSI七层模型的数据链接层。

 网络层:对应OSI七层模型的网络层。

 传输层:对应OSI七层模型的传输层。

 应用层:对应OSI七层模型的会话层、表示层、应用层。

3. OSI七层和TCP/IP五层以及对应网络设备对比示例图

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

1. TCP三次握手

 第一次握手:建立连接时,客户端发送syn包(syn=1)到服务器,请求报文的序号为(seq=x),并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers);

 第二次握手:服务器收到syn包后,若同意建立连接,则回复一个syn包给客户端(SYN=1,ACK=1),并选择一个请求报文的序号(seq=y),且回复报文中的确认号(ack=x+1),此时服务器进入同步已接收状态(SYN-RCVD)

 第三次握手:客户端收到服务器的同步确认后,向服务器发送确认包(ack=1),并将报文序号加1(seq=x+1),同时回复报文确认号(ack=y+1),此包发送完毕,客户端和服务器建立连接,进入ESTABLISHED(TCP连接成功)状态,完成三次握手。

2. TCP四次挥手

 1) 客户端进程发出连接释放报文,并且停止发送数据。释放数据报文首部,FIN=1,其序列号为seq=u(等于前面已经传送过来的数据的最后一个字节的序号加1),此时客户端进入FIN-WAIT-1(终止等待1)状态。 TCP规定,FIN报文段即使不携带数据,也要消耗一个序号。

 2) 服务器收到连接释放报文,发出确认报文,ACK=1,ack=u+1,并且带上自己的序列号seq=v,此时,服务端就进入了CLOSE-WAIT(关闭等待)状态。TCP服务器通知高层的应用进程,客户端向服务器的方向就释放了,这时候处于半关闭状态,即客户端已经没有数据要发送了,但是服务器若发送数据,客户端依然要接受。这个状态还要持续一段时间,也就是整个CLOSE-WAIT状态持续的时间。

 3) 客户端收到服务器的确认请求后,此时,客户端就进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接释放报文(在这之前还需要接受服务器发送的最后的数据)。

 4) 服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,FIN=1,ack=u+1,由于在半关闭状态,服务器很可能又发送了一些数据,假定此时的序列号为seq=w,此时,服务器就进入了LAST-ACK(最后确认)状态,等待客户端的确认。

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

 6) 服务器只要收到了客户端发出的确认,立即进入CLOSED状态。同样,撤销TCB后,就结束了这次的TCP连接。可以看到,服务器结束TCP连接的时间要比客户端早一些。

三、描述TCP和UDP区别

 1) TCP面向连接;UDP是无连接的,即发送数据之前不需要建立连接;

 2) TCP提供可靠的服务,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付;

 3) TCP面向字节流;UDP是面向报文的;

 4) TCP传输效率低;UDP传输效率高;

 5) TCP具有拥塞控制和流量控制,UDP没有;

 6) TCP是全双工的;UDP则是一对一、一对多、多对一、多对多;

 7) TCP首部开销大(20字节);UDP首部开效小(8字节)

  TCP UDP
可靠性 可靠 不可靠
连接性 面向连接 无连接
报文 面向字节流 面向报文(保留报文的边界)
效率 传输率低 传输效率高
双工性 全双工 一对一、一对多、多对一、多对多
流量控制 有(滑动窗口)
拥塞控制 有(慢开始、拥塞避免、快重传、快恢复)
首部开销 20字节 8字节

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

1. A类地址

 1) A类地址第1字节为网络地址,其它3个字节为主机地址

 2) A类地址范围:1.0.0.1—126.255.255.254

 3) 每个网络中的主机数:2^24-2

 4) A类地址中的私有地址和保留地址:

  ① 10.X.X.X 是私有地址(所谓的私有地址就是在互联网上不使用,而被用在局域网络中的地址),范围 (10.0.0.0-10.255.255.255)

  ② 127.X.X.X 是保留地址,用做循环测试用的。

2. B类地址

 1) B类地址第1字节和第2字节为网络地址,其它2个字节为主机地址

 2) B类地址范围:128.0.0.1—191.255.255.254

 3) 每个网络中的主机数:2^16-2

 4) B类地址的私有地址和保留地址:

  ① 172.16.0.0—172.31.255.255 是私有地址

  ② 169.254.X.X 是保留地址;如果你的IP地址是自动获取IP地址,而你在网络上又没有找到可用的DHCP服务器,就会得到其中一个IP。

3. C类地址

 1) C类地址第1字节、第2字节和第3个字节为网络地址,第4个个字节为主机地址。另外第1个字节的前三位固定为110

 2) C类地址范围:192.0.0.1—223.255.255.254

 3) 每个网络中的主机数:2^8-2

 4) C类地址中的私有地址:

  ① 192.168.X.X 是私有地址;范围 (192.168.0.0-192.168.255.255)

4. D类地址

 1) D类地址不分网络地址和主机地址,它的第1个字节的前四位固定为1110

 2) D类地址范围:224.0.0.1—239.255.255.254

5. E类地址

 1) E类地址不分网络地址和主机地址,它的第1个字节的前五位固定为11110

 2) E类地址范围:240.0.0.1—255.255.255.254

五、总结IP配置方法

1. ifconfig 命令

 1) 启用或禁用网卡:ifconfig IFNAME up | down   如:ipconfig eth0 down ,ipconfig eth0 up

 2) 设定IP地址:

  ifconfig IFNAME IP/NETMASK [up]  如:ifconfig eth0 192.168.214.17/24
  ifconfig IFNAME IP netmask NETMASK  如:ifconfig eth0 192.168.214.17 netmask 255.255.255.0

2. ip 命令

 命令格式:ip [OPTION] OBJECT {COMMAND | help}
       OBJECT:{ link | addr | route }

 1) link:链接接口

  ① set:设定接口属性  ip link set IFNAME { up | down }  如:ip link set eth1 down

  ② show:显示接口状态  如 ip link show eth1

 2) addr:管理地址

  ip addr { add | del } IFADDR dev IFNAME

  ① add:添加地址  如:ip addr add 192.168.214.27/24 dev eth0

  ② del:删除地址   如:ip addr del 192.168.214.27/24 dev eth0

  ③ show:显示该网卡的所有地址信息  ip addr show [dev IFNAME]  如 ip addr show 显示所有网卡的地址信息  ip addr show dev eth0 显示eth0网卡的地址信息

  ④ flush:清除协议地址  ip addr flush [dev IFNAME]  如   ip addr flush dev eth0

 3) route:管理路由

  ① list | show:显示路由  如 ip route list

  ② add:添加路由

    ip route add DESTINATION via GATEWAY [dev IFNAME]
      DESTINATION:
        主机路由:IP   如:ip route add 192.168.214.17 via 172.16.0.1
        网络路由:NETWORK/MASK  如:ip route add 192.168.0.0/24 via 172.16.0.1 
    添加网关:ip route add default via GW [dev IFNAME]    如:ip route add default via 172.16.0.1

  ③ del:删除路由  ip route del DESTINATION   如:ip route del 192.168.0.0/24

  ④ flush:清空路由表  ip route flush [dev IFNAME]   如:ip route flush dev eth0  

3. 编辑配置文件

 每个网络接口都有一个配置文件 /etc/sysconfig/network-scripts/ifcfg-IFNAME,可以通过编辑这个配置文件来配置相应的参数信息,配置文件常用参数如下:

  DEVICE=eth0    #DEVICE:此设备文件所关联的设备
  UUID=b77847d4-b83f-4d29-ba5c-2d3e21705d71    #UUID:网卡设备的唯一识别码
  HWADDR=08:00:27:24:2d:19    #HWADDR:网卡的MAC地址
  NM_CONTROLLED=no    #NM_CONTROLLED:即NetworkManager的简写,建议设定为no
  TYPE=Ethernet        #TYPE:设备类型,通常有Ethernet、Bridge
  BOOTPROTO=static    #BOOTPROTO:配置协议,有static(手工配置)、none(手工配置)、dhcp(动态配置)
  ONBOOT=yes           #ONBOOT:此设备是否随系统启动而激活
  IPADDR=192.168.214.17    #IPADDR:IP地址
  NETMASK=255.255.0.0     #NETMASK:子网掩码
  GATEWAY=192.168.214.1   #GATEWAY:网关
  DNS1=114.114.114.114     #DNS1:主DNS服务器
  DNS2=180.76.76.76      #DNS2:备用DNS服务器

 手工配置的话有以下几项即可:

[root@centos7 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=static
IPADDR=192.168.214.17
NETMASK=255.255.0.0
GATEWAY=192.168.214.1
DNS1=114.114.114.114
DNS2=180.76.76.76 

4. GUI 工具

 图形用户界面(Graphical User Interface),简称GUI,是指采用图形的方式显示计算机操作的用户界面。安装了图形化桌面后,登陆配置即可。

5. TUI 工具

 通过文本命令的方式执行程序,而不是通过图形界面窗口的点击按钮方式;

 CentOS6 系统在命令行输入 setup 命令,弹出配置工具,选择 Network Configurations,然后选择相应网卡,一步步配置即可;

 CentOS7 系统则是在命令行输入 nmtui 命令,弹出配置工具,选择 Edit a connection,然扣选择相应网卡,一步步配置即可。

 注意:配置完成后需要重启网络服务才能生效

   CentOS6:[root@centos6 ~]# service network restart

   CentOS7:[root@centos7 ~]# systemctl restart network

第七周作业—N42-虚怀若谷的更多相关文章

  1. 2017-2018-1 我爱学Java 第六七周 作业

    团队六七周作业 完善版需求规格说明书 制定团队编码规范 数据库设计 后端架构设计 TODOList 参考资料 完善版需求规格说明书 <需求规格说明书>初稿不足之处: 1.开发工具写错 2. ...

  2. 2018-2019-1 20189221 《Linux内核原理与分析》第七周作业

    2018-2019-1 20189221 <Linux内核原理与分析>第七周作业 实验六 分析Linux内核创建一个新进程的过程 代码分析 task_struct: struct task ...

  3. 2017-2018-1 JAVA实验站 第六、七周作业

    2017-2018-1 JAVA实验站 第六.七周作业 详情请见团队博客

  4. 2017-2018-1 JaWorld 第六、七周作业

    2017-2018-1 JaWorld 第六.七周作业 修改需求规格说明书 上次的<需求规格说明书>初稿有哪些不足? 王译潇同学回答:   1. 引言和目的性考虑的不是很周全.   2. ...

  5. 2017-2018-1 20179205《Linux内核原理与设计》第七周作业

    <Linux内核原理与设计>第七周作业 视频学习及操作分析 创建一个新进程在内核中的执行过程 fork.vfork和clone三个系统调用都可以创建一个新进程,而且都是通过调用do_for ...

  6. 2019-2020-1 20199325《Linux内核原理与分析》第七周作业

    第七周作业 1.进程描述符task_struct数据结构(一) 为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息. struct task_struct数据结构很 ...

  7. 2019-2020-1 20199329《Linux内核原理与分析》第七周作业

    <Linux内核原理与分析>第七周作业 一.本周内容概述: 对Linux系统如何创建一个新进程进行追踪 分析Linux内核创建一个新进程的过程 二.本周学习内容: 1.学习进程的描述 操作 ...

  8. 2020-2021-1 20209307《Linux内核原理与分析》第七周作业

    这个作业属于哪个课程 <2020-2021-1Linux内核原理与分析)> 这个作业要求在哪里 <2020-2021-1Linux内核原理与分析第七周作业> 这个作业的目标 & ...

  9. 1903021116—吉琛—Java第七周作业—客户类测试

    项目 内容 课程班级博客链接 19信计班 这个作业要求链接 第七周作业链接 博客名称 学号-姓名-Java第七周作业-客户类测试 要求 每道题要有题目,代码(使用插入代码,不会插入代码的自己查资料解决 ...

  10. 2003031121——浦娟——Python数据分析第七周作业——MySQL的安装及使用

    项目 要求 课程班级博客链接 20级数据班(本) 作业要求链接 Python第七周作业 博客名称 2003031121--浦娟--Python数据分析第七周作业--MySQL的安装及使用 要求 每道题 ...

随机推荐

  1. c++ 创建 uuid guid

    如果没安装,先安装: [root@localhost]# yum install libuuid-devel #include "uuid/uuid.h" 引用 libuuid.s ...

  2. aiXcoder安装&使用

    1.官网下载 https://www.aixcoder.com/#/setting 1.1介绍 1.2选择对应的下载版本 1.3安装&注册(需关闭IDEA) 安装完进行手机/邮箱注册,下载对应 ...

  3. Eclipse 添加 UML Model插件

    1.下载安装 ModelGson 下载链接:https://pan.baidu.com/s/1smIZApv   密码:mu5l eclipse安装ModelGson(注意不用解压ModelGson, ...

  4. python2和python3中split的坑

    执行同样的split,python2和python3截取的行数内容却不一样 我想要截取Dalvik Heap行,使用split('\n')的方法 import os cpu='adb shell du ...

  5. 【HANA系列】SAP HANA SQL获取当前月的第一天

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA SQL获取当前 ...

  6. 【C语言--数据结构】线性表链式存储结构

    直接贴代码 头文件 #ifndef __LINKLIST_H__ #define __LINKLIST_H__ typedef void LinkList; typedef struct _tag_L ...

  7. net 架构师-数据库-sql server-003-T-SQL 基本语句

    3.1 基本SELECT语句 SELECT [ALL|DISTINCT] [TOP (<expression>)  [PERCENT] [WITH TIES]] <coloumn  ...

  8. GraphQL入门有这一篇就足够了

    GraphQL入门有这一篇就足够了:https://blog.csdn.net/qq_41882147/article/details/82966783 版权声明:本文为博主原创文章,遵循 CC 4. ...

  9. Hyper-V Centos7 虚拟机固定IP

    在网上看到很多篇文章,自己也去试验过,结果实现的效果都不是很理想,并不是自己所需要的,下面是我自己研究,最后成功的经验,希望能够帮到大家.少走一些弯路. 需求 1.无论物理机的网络环境怎么变化,都需要 ...

  10. [LeetCode] 30. 串联所有单词的子串

    题目链接: https://leetcode-cn.com/problems/substring-with-concatenation-of-all-words/ 题目描述: 给定一个字符串 s 和一 ...