Linux基础及总结7之网络

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

        osi七层模型:

        应用层:应用层是常见的一些应用程序服务(如nginx http服务,ftp软件,qq软件),他们产生的和接收到的数据就是应用层数据。应用层是osi的最高层,也是最接近用户的层次。

        表示层:使用应用层的下一层,应用层的数据会首先经过表示层,将为应用层产生的数据提供数据转换类的服务,也就是数据如何展现,如何表示。例如格式转换,编码转换,数据压缩,数据加密与解密。

        会话层:跨主机的两个计算机之间的应用程序需要痛通信,需要建立会话。会话层虽然不参与具体的数据传输,但它却对数据传输进行管理。会话层在两个互相通信的应用进程之间建立、组织和协调其交互活动。

        传输层:传输层的基本功能就是接收上一层的数据,并在必要的时候将数据分割成最小的数据单元,然后把这些数据单元传递给网络层。

        网络层:收到传输层封装后过来的数据,需要指定数据要到达的目标ip地址。在网络层会为数据报继续封装,加上源IP和目标IP地址,此时数据报就成了数据包。根据路由规则,可以知道将这个数据包怎么传递出去,以及如何找到目标主机,同时对方可以通过数据包中源IP地址找到回来的路径。

        链路层:数据包到达了数据链路层,将继续封装得到数据帧,将源MAC地址和目标MAC地址加入到数据包中,得到的就是数据帧,计算机就可以通过MAC地址将数据包传递局域网的下一跳,是给交换机还是路由器,但最终要出去还是会经过本地的路由器,路由器将解封数据帧,同时修改源MAC为自己的MAC地址,目标MAC为路由器的下一跳的MAC地址,通过这样不断的修改目标MAC和源MAC,数据最终能够到达目标主机上。

        物理层:数据最终通过网卡出去,数据帧将进入最后一层物理层。在物理层,网卡会将数字信号转变成点信号传递给网线,物理层处理后得到的数据是二进制数据,也称为bit流。

    TCP四层模型:

        TCP/IP协议族分为四层,分别为应用层,传输层,网络层,链路层

        应用层: 应用层是常见的一些应用程序服务(如nginx http服务,ftp软件,qq软件),他们产生的和接收到的数据就是应用层数据。应用层是osi的最高层,也是最接近用户的层次。

        传输层:为两台主机的应用程序之间提供端到端的数据传输,提供了两种不同的服务,面向连接,可靠的数据流TCP传输控制协议,和无连接,不可靠面向数据报传输的UDP用户数据报协议。

        网络层:网络层主要提供地址管理,和路由选择,TCP/IP协议族中,网络层协议包括IP协议(网际协议)、ICMP (Internet控制报文协议),IGMP (Internet 组管理协议)。

        链路层:链路层主要提供相邻设备之间的数据传输, 链路层主要实现三个目的:接受和发送ip数据包、接受发送ARP(地址解析协议)请求(获取目标主机的MAC地址) 、为发送RARP(逆地址解析协议,针对无盘机)请求和接收RARP应答,另外根据网络中硬件的不同,链路层有不同的协议,如以太网,令牌环网。

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

    TCP三次握手

            首先服务器端B的服务进程已经监听在某个端口上,监听之后就可以一直等待客户端请求,简历TCP的连接。

            1)客户端A想要和客户端B建立TCP连接时,首先会发送一个连接请求报文给服务器B。

                在这个请求报文中,TCP首部中的SYN位设置为1,ACK位设置为0,假设此时的序号是x(序号不一定是1),即SYN=1、ACK=0、seq=x。这个包也被称为SYN包,当客户端发送完SYN包后,他将进入SYN_SENT状态。

            2)当B收到报文后,发现其中的SYN=1、ACK=0,边知道这是一个TCP连接的请求包。如果B确认和A简历TCP连接,那么B需要回复A. 回复时,SYN=1、ACK=1、ack=x+1、seq=y.注意区分这里的ACK和ack,ACK表示的是占用一个比特位的ACK设置位,ack是确认号。这个包通常被称为ACK包,当服务端完ACk包之后,它将进入SYN_RECV状态。

            3)当A收到B的回复报文后,发现里面的SYN=1、ACK=1,于是也会向B回复一个ACK包,回复时,SYN=0、ACK=1、seq=x+1、ack=y+1.这里的SYN=0、ACK=1表示这不是建立连接的请求包,而是回复包。A发送完之后,就进入了ESTABLIESHED状态,表示连接在A端已经建立完成。

            4)B最终收到A的ACK包之后,也将进入ESTABLISHED状态。到此,TCP连接就建立完成。

    TCP四次挥手

            首先两端在开始释放TCP连接之前,都已经处于ESTABLISHED状态,假设现在A开始请求释放连接(B端也可以主动释放连接)

         1)A首先发送一个TCP首部中FIN位置为1的包给B端,假设此时序号是u,即seq=u。FIN=1意味着这是一个请求关闭TCP连接的数据包,这种包也称为FIN包。当发送FIN包之后,A将从ESTABLISHED状态转变为FIN-WAIT-1状态。

          2)B收到FIN包之后,发现其中FIN=1,知道A端请求关闭,于是发了一个回复包给A。回复时,设置ACK=1,ack=u+1,同时还设置序号seq=v(假设B现在发送到的数据序号是v),发送完这个回复包之后,服务端进入CLOSE_WAIT状态。到了这个阶段,A(主动请求关闭方)到B(被动方)方向的连接就已经释放了,A不能在发送传输数据给B,但是B到A方向的连接还没有关闭,他可以继续发送数据给A,A也会接收。因为在这个阶段只有一个方向的连接被释放,所以close-wait状态也称为半关闭(half-close)状态。

        3)当A收到B的ACK包之后它将进入FIN-WAIT2,等待B发起B到A方向的连接关闭请求。

        4)当B确认已经没有数据发送给A后,B开始主动关闭从B到A方向的TCP连接。这时会发送一个FIN包,同事ACK设置为1,ack任然保持不变,是u+1,而seq则为一个新值w,因为进入CLOSE-WAIT之后,B可能还会发送一些数据。B发送完这个FIN+ACK包之后,将进入LAST-ACK(最后确认)状态。

        5)当A收到B的FIN+ACK包之后,需要对B发送的关闭请求做出回复。回复时,ACK=1,seq=u+1不变,ack=w+1.当发送完这个ACK包之后,A不会立即就关闭,而是进入TIME-WAIT阶段等待一段时间(2倍的MSL时长)。

        6)当B收到A的回复ACK包之后,意味着B到A放方向的连接关闭已经确认了,于是B端关闭连接。

        7)当A等待了2MSL的时长之后,将真正关闭连接。



3、描述TCP和UDP区别

    UDP协议主要特点:

    1)UDP是无连接的,及发送数据之前不需要和对方先建立连接,也不存在关闭连接的过程,传输效率比较高。

    2)UDP会尽量保证数据可到达目标目标主机,但是无法保证可靠的传输,因为在传输数据之前没有建立可靠的链接,数据丢失后无法重传。

    3)UDP是面向数据报的。    

    4)UDP首部开销小,只有8个字节,而TCP首部有20个字节,相比TCP协议,UDP的传输效率更高。

    5)UDP没有拥塞控制,在网络拥塞的时候,源主机不会因此而降低发送速率,所以UDP的实时性更好。所以,对弈业务场景允许丢失一些数据,但有要求高实时性的场景,UDP更为合适。

    6)差错校验功能有限,在校验后发现不一致,将直接丢弃数据报。

    TCP协议主要特点:

    1)工作在传输层

    2)面向连接协议

    3)全双工协议

    4)半关闭

    5)错误检查

    6)将数据打包成段,排序

    7)确认机制

    8)数据恢复,重传

    9)流量控制,滑动窗口

    10)拥塞控制,慢启动和拥塞避免算法

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

        IP地址分为5种,分别是A-E类,其中D和E类分为特殊地址。

        A类地址范围是:1-126,A类地址有126个网段

        可分配的IP数量是:(256*256*256-2)*126=2113928964

        B类地址范围是:128-191,B类地址有16384个网段

        可分配的IP数量是:(256*256-2)*16384=1073709056

        C类地址范围是:192-223,C类地址有2097152

        可分配的IP数量是:(256-2)*2097152=532676608

        D类地址范围是:224-239    

        E类地址范围是:240-255

5、总结IP配置方法

        1)修改网卡配置文件以centos为例:

            vim  /etc/sysconfig/network-scripts/ifcfg-ens192

        2)使用ifconfig或者ip命令修改网卡IP,此方法为临时生效

                例如 : ifconfig ens192:1 192.168.2.244

                            ip addr add 192.168.2.245/24 dev ens192 label ens192:2                   

        3)Centos7网络配置命令nmcli,改配置ip是新增配置文件

            nmcli connection add type ethernet ipv4.addresses 192.168.2.245 ipv4.dns 223.5.5.5 ipv4.method manual ipv4.gateway 192.168.2.50 ifname ens192

    

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,001评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,210评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,874评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,001评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,022评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,005评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,929评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,742评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,193评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,427评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,583评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,305评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,911评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,564评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,731评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,581评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,478评论 2 352

推荐阅读更多精彩内容