Linux入门之主机访问互联网相关要点


概述

网络访问主要分为互联网访问以及主机之间的访问,但二者有着诸多区别,本次主要讲述,两者的访问流程原理,以及区别。

互联网TCP和OSI模型

在这里插入图片描述

TCP模型

TCP/IP是一组用于实现网络互连的通信协议。Internet网络体系结构以TCP/IP为核心。基于TCP/IP的参考模型将协议分成四个层次,它们分别是:网络访问层、Internet层、传输层和应用层。

TCP四层网络体系结构:

层次功能
应用层应用层对应于OSI参考模型的高层,为用户提供所需要的各种服务,如:FTP、Telnet、DNS、SMTP等
传输层传输层对应于OSI参考模型的传输层,为应用层实体提供端到端的通信功能,保证了数据包的顺序传送及数据的完整性。该层定义了两个主要的协议:传输控制协议(TCP)和用户数据报协议(UDP)
Internet层Internet层对应于OSI参考模型的网络层,主要解决主机到主机的通信问题。它所包含的协议设计数据包在整个网络上的逻辑传输。注重重新赋予主机一个IP地址来完成对主机的寻址,它还负责数据包在多种网络中的路由。该层有三个主要协议:网际协议(IP)、互联网组管理协议(IGMP)和互联网控制报文协议(ICMP)
网络访问层(即主机-网络层)网络访问层与OSI参考模型中的物理层和数据链路层相对应。它负责监视数据在主机和网络之间的交换
OSI模型

OSI协议是由ISO制定的,它有三个基本的功能:提供给开发者一个必须的、通用的概念以便开发完善、可以用来解释连接不同系统的框架。

OSI七层网络体系结构:

层次功能
物理层将数据转换为可通过物理介质传送的电子信号
数据链路层决定访问网络介质的方式。在此层将数据分帧,并处理流控制
网络层使用权数据路由经过大型网络
传输层提供终端到终端的可靠连接
会话层允许用户使用简单易记的名称建立连接
表示层协商数据交换格式
应用层用户的应用程序和网络之间的接口

TCP/IP协议

在这里插入图片描述

特性

  • 工作在传输层面向连接协议
  • 全双工协议
  • 半关闭
  • 错误检查
  • 将数据打包成段,排序
  • 确认机制
  • 数据恢复,重传
  • 流量控制,滑动窗口
  • 拥塞控制,慢启动和拥塞避免算法

TCP包头

源端口、目标端口:

  • 计算机上的进程要和其他进程通信是要通过计算机端口的,而一个计算机端口某个时刻只能被一个进程占用,所以通过指定源端口和目标端口,就可以知道是哪两个进程需要通信。源端口、目标端口是用16位表示的,可推算计算机的端口个数为2^16个
    序列号:
  • 表示本报文段所发送数据的第一个字节的编号。在TCP连接中所传送的字节流的每一个字节都会按顺序编号。由于序列号由32位表示,所以每2^32个字节,就会出现序列号回绕,再次从0开始
    确认号:
  • 表示接收方期望收到发送方下一个报文段的第一个字节数据的编号。也就是告诉发送发:我希望你(指发送方)下次发送的数据的第一个字节数据的编号是这个确认号
    数据偏移:
  • 表示TCP报文段的首部长度,共4位,由于TCP首部包含一个长度可变的选项部分,需要指定这个TCP报文段到底有多长。它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。该字段的单位是32位(即4个字节为计算单位),4位二进制最大表示15,所以数据偏移也就是TCP首部最大60字节
    URG:
  • 表示本报文段中发送的数据是否包含紧急数据。后面的紧急指针字段(urgent pointer)只有当URG=1时才有效
    ACK:
  • 表示是否前面的确认号字段是否有效。ACK=1,表示有效。只有当ACK=1时,前面的确认号字段才有效。TCP规定,连接建立后,ACK必须为1,带ACK标志的TCP报文段称为确认报文段
    PSH:
  • 提示接收端应用程序应该立即从TCP接收缓冲区中读走数据,为接收后续数据腾出空间。如果为1,则表示对方应当立即把数据提交给上层应用,而不是缓存起来,如果应用程序不将接收到的数据读走,就会一直停留在TCP接收缓冲区中
    RST:
  • 如果收到一个RST=1的报文,说明与主机的连接出现了严重错误(如主机崩溃),必须释放连接,然后再重新建立连接。或者说明上次发送给主机的数据有问题,主机拒绝响应,带RST标志的TCP报文段称为复位报文段
    SYN:
  • 在建立连接时使用,用来同步序号。当SYN=1,ACK=0时,表示这是一个请求建立连接的报文段;当SYN=1,ACK=1时,表示对方同意建立连接。SYN=1,说明这是一个请求建立连接或同意建立连接的报文。只有在前两次握手中SYN才置为1,带SYN标志的TCP报文段称为同步报文段
    FIN:
  • 表示通知对方本端要关闭连接了,标记数据是否发送完毕。如果FIN=1,即告诉对方:“我的数据已经发送完毕,你可以释放连接了”,带FIN标志的TCP报文段称为结束报文段
    窗口大小:
  • 表示现在充许对方发送的数据量,也就是告诉对方,从本报文段的确认号开始允许对方发送的数据量
    校验和:
  • 提供额外的可靠性
    紧急指针:
  • 标记紧急数据在数据字段中的位置
    选项部分:
  • *其最大长度可根据TCP首部长度进行推算。TCP首部长度用4位表示,选项部分最长为:(2^4-1)4-20=40字节

常见选项:

  • 最大报文段长度:MaxiumSegment Size,MSS
  • 窗口扩大:Windows Scaling
  • 时间戳:Timestamps

TCP三次握手

在这里插入图片描述

1.主机A向主机B发送请求通信报文,SYN表示序列号,ACK表示确认与否

2.主机B接收到主机A发来的请求通信保报文时向主机B回复报文,SYN表示序列号,ACK表示刚刚主机A发送的报文自己已收到,seq表示数据节流,ack表示针对上一条报文的数据节流做出调整

3.主机A收到主机B的回复报文之后回复确认收到报文,各参数含义同上

TCP四次挥手

在这里插入图片描述
四次挥手原理同三次握手原理类似

1.主机A向主机B发送请求关闭连接请求参数为FIN,数据节流为seq

2.主机B收到主机A发送的请求后向主机B发送回复报文,确认号ACK,数据节流seq,以及确认数据节流ack

3.主机B等待一定时间若主机A未向主机B发送任何报文,主机B默认主机A收到回复报文,这时会向主机A发送中断报文,参数含义同上

4.主机A收到主机B发来的中断报文后向主机B发送确认报文,等待一定时间后中断连接

5.主机B收到主机A的确认报文后直接中断连接
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雪千颜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值