网络(CCNA)的学习(一)-----OSI七层模型|TCP、UDP|IPV4基本知识

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/q303705455/article/details/95058887
  • 几种常见三层协议
    IP 网际网络协议
    ICMP 网络控制管理协议 Ping 测试连通性指令
    ARP 地址解析协议
  • 四层协议
    TCP 传输控制协议
    UDP 用户数据报文协议
  • 端口号
    0-65535 1-1023(著名端口) 1024-65535(动态端口、高端口)
  • 几种常见的应用层服务及端口号
    FTP 文件传输协议 TCP 21
    Telnet 远程登录 TCP 23
    HTTP 超文本传输协议 TCP 80
    DNS 域名解析系统 UDP/TCP 53
    HTTPS 安全HTTP TCP 443
    MSS 最大段长度 以太网 1480B
    MTU 最大传输单元 以太网 1500B

OSI七层模型

  • 第七层:应用层 (Application)
    通过人机交互的界面提供各种各样的服务
    (协议有:HTTP FTP TFTP SMTP SNMP DNS)
  • 第六层:表示层(Presentation Layer)
    数据的表示、安全、压缩。
    (格式有,JPEG、ASCll、DECOIC、加密格式等)
    (在五层模型里面已经合并到了应用层)
  • 第五层:会话层(Session Layer)
    对应主机进程,指本地主机与远程主机正在进行的会话,建立、管理、终止会话。
    (在五层模型里面已经合并到了应用层)
  • 第四层:传输层 (Transport)
    定义传输数据的协议端口号,以及流控和差错效验。
    (协议有:TCP UDP,数据包一旦离开网卡即进入网络传输层)
  • 第三层:网络层 (Network)
    通过IP地址进行逻辑寻址,实现不同网络之间的路径选择。(路由器)
    (协议有:ICMP IGMP IP(IPV4 IPV6) ARP RARP)
  • 第二层:数据链路层 (Link)
    建立逻辑连接、进行硬件地址寻址、差错效验等功能。(由底层网络定义协议)
    将比特组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正。
    逻辑链路控制层 LLC 为上层提供服务 提供FCS校验
    媒介访问控制层 MAC 网桥/交换机
  • 第一层:物理层(Physical Layer)
    定义电气、电压、光学特性、接口规范 中继器/集线器

TCP的三次握手与四次挥手

三次握手(建立连接):

  • 首先由A(客户端)向B(服务端)发送一个连接请求syn报文(syn=1),并置发送序号seq为x,代表向B发送想要连接的请求

  • B(服务端)收到A(客户端)发送的syn报文请求连接后,发送syn和ack(syn=1,ack=x+1)报文,并置发送序号seq为y,再确认序号为x+1,代表已经收到了A的请求并同意要连接,将这个消息发给A

  • A收到了B的报文后,发送ack(ack=y+1)报文,并置发送序号seq为z,再确认序号为y+1
    三次握手目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换 TCP 窗口大小信息.在socket编程中,客户端执行connect()时。将触发三次握手。
    在这里插入图片描述
    四次挥手(关闭连接):

  • 首先由A(主动方)向B(被动方)发送一个fin报文(fin=1),并将ack置为z,置发送序号seq为x,表示请求与B断开连接

  • B(被动方)收到了来自A(主动方)的fin报文,并同意与其断开连接,则会先发一个确认的ack(x+1)报文,置发送序号seq为z

  • B(被动方)随即发一fin报文(fin=1)给A(主动方)断开连接,并置发送序号seq为y(ack=x)

  • A(主动方)收到B(被动方)发送一个fin报文后,发送ack(ack=y)报文,并置发送序号seq为x,确认断开连接
    TCP的连接的拆除需要发送四个包,因此称为四次挥手。客户端或服务器均可主动发起挥手动作,在socket编程中,任何一方执行close()操作即可产生挥手操作。
    在这里插入图片描述

  • 为什么建立连接协议是三次握手,而关闭连接是四次握手
    服务端的LISTEN状态下的SOCKET当收到SYN报文的连接请求后,可以把ACK和SYN(ACK起应答作用,而SYN起同步作用)放在一个报文里来发送。但关闭连接时,当收到对方的FIN报文通知时,它仅仅表示对方没有数据发送给你了;但未必你所有的数据都全部发送给对方了,所以你可能未必会马上会关闭SOCKET,也即你可能还需要发送一些数据给对方之后,再发送FIN报文给对方来表示你同意现在可以关闭连接了,所以它这里的ACK报文和FIN报文多数情况下都是分开发送的。

  • 为什么不能用两次握手进行连接?
    3次握手完成两个重要的功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送和确认。若把三次握手改成仅需要两次握手,死锁是可能发生的。作为例子,考虑计算机S和C之间的通信,假定C给S发送一个连接请求分组,S收到了这个分组,并发 送了确认应答分组。按照两次握手的协定,S认为连接已经成功地建立了,可以开始发送数据分组。可是,C在S的应答分组在传输中被丢失的情况下,将不知道S 是否已准备好,不知道S建立什么样的序列号,C甚至怀疑S是否收到自己的连接请求分组。在这种情况下,C认为连接还未建立成功,将忽略S发来的任何数据分 组,只等待连接确认应答分组。而S在发出的分组超时后,重复发送同样的分组。这样就形成了死锁。

Ipv4地址

  • 基础:
    32位二进制,点分十进制
    分为网络位(标识所在网段)和主机位(网段中唯一标识某主机)
    完整的IP地址需要掩码
    IPV4 2^32=4294967296 42亿个地址
    IPV6 128w位 2^128

  • 掩码的作用:(掩码同样32位二进制,点分十进制,32进制中,0表示主机位,1表示主机位)
    可以根据掩码得知网络位的位数与主机位的位数
    (例如:255.255.255.0二进制表示就是11111111111111111111111100000000故网络位为24,主机位为8位)

  • 主类网一般分为:
    A 0 0000000—0 1111111 0-127
    B 10 000000—10 111111 128-191
    C 110 00000—110 11111 192-223
    D 1110 0000—1110 1111 224-239
    E 1111 0000----1111 1110 240-254

单播地址:ABC 一对一 (分为1.公有地址:全球唯一性 需要付费使用 2.私有地址:本地唯一性 无需付费)
组播地址:D 一对一组
广播地址: 一对多
科研使用:E

特殊ip地址:

  • 127.0.0.1/8 本地环回地址,测试设备网卡是否能工作(ping+ip/域名)
  • 169.254.0.0/16 本地私有地址(DHCP获取不到地址时电脑自动分配的地址)
  • 0.0.0.0/0 无效地址/缺省地址(默认地址)
  • 主机位全为0的地址 例:192.168.1.00000000/24 代表本网段内所有主机—主机位全0(代表网络范围的所有主机)
  • 主机位全为1的地址 例:192.168.1.11111111/24 代表本网段内的广播地址—主机位全1(代表本网络范围的广播地址)
  • 255.255.255.255 全局广播地址

报头

  • TCP报头(20B):
    在这里插入图片描述
  • UDP报头(8B):
    在这里插入图片描述
  • IP报头(20B):
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/q303705455/article/details/95058887
今日推荐