CCNA 必备:Linux 网络基础知识入门及 tcp 协议

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 一、交换机的弊端及优化方法二、网络分层三、TCP/IP协议栈四、TCP/IP分层五、TCP协议特性六、TCP包头

CCNA 必备:Linux 网络基础知识入门及 tcp 协议

 

内容介绍:

一、交换机的弊端及优化方法

二、网络分层

三、TCP/IP协议栈

四、TCP/IP分层

五、TCP协议特性

六、TCP包头

 

 

一、交换机的弊端及优化方法


1.   弊端

交换机是一个典型的二层设备,不能隔断广播域的,但是在生产中确实有这种需求,比方说企业里面主机和主机之间相连,很多情况下用的都是交换机相连,只有连接互联网的时候可能会用到相应的路由器设备。


一个路由器连接了一个交换机,交换机又连接了各自的生产工作中的电脑上,由于交换机默认不能隔断广播域,只要连到交换机上,彼此之间相互之间都可以直接相连。换句话说,如果有两台主机,主机A这个主机B,假设A主机是销售部所在的部门。

 

B主机是财务部所在部门,由于这两个主机在同一个交换机上相连,彼此之间可以畅通无阻的直接相互访问。


但是财务部的主机里有一些比较敏感的财务数据,如果两者之间互相完全不加以控制的互相访问,比如a主机在知道B电脑IP地址的情况下,可以直接访问B主机,无形中带来了一些安全风险。

 

2.   优化方法

image.png

引入VLAN,可以在隔离广播域的同时保证了其安全性并且可以灵活管理。


VLAN叫作虚拟局域网,V表示虚拟的。虚拟局域可以使交换机隔断广播。


举例如图所示,这个建筑物是三层的,三层中每层都有交换机,负责把同一层的办公电脑连起来。


但是每层都有不同部门的电脑,比方说第一层,第二层,第三层都有销售部的电脑,HR的以及是工程部的电脑,三个部门在每一层均有分布。


理论上希望销售部的员工可以彼此之间相互访问,但是对其他部门的访问加以控制,此时就可以用vlan技术来实现。

 

在交换机分别连接的不同的接口上划分成不同的vlan,将交换机上的八个接口划分到vlan1里,给销售部使用,另外八个接口放到vlan2中,给HR使用,另外八个接口放置vlan3,供技术部使用。使用vlan的好处是不同vlan之间的主机不能直接通讯,只有再通过路由器进行连接,且可以通过路由器控制不同vlan里主机的通讯。

 

但是vlan技术也存在一定弊端,例如路由器的接口有限,不同vlan之间的主机通讯也就受到了限制,而且需要引入trunk 协议进行连接,引入trunk后也不可以保证接收端可以完全区分输送端的vlan接口,因此数据在trunk一端输出的瞬间需要添加一个vlan信息进行标记,相当于修改了数据包的帧结构。

 

trunk协议有很多种,例如ISL协议(不通用)802.1Q(国际通用),不同trunk协议的区别是对vlan信息的标记地点不同,802.1Q标记在type类型和源之间。

 

 

二、网络分层


搭建网络时,如何实现网络分层

image.png

 

在企业里面搭建网络,分成三层,分层是从另一角度来划分的,是从搭建网络的角度即规划网络来划分的,而不是根据OSI 模型的功能来划分的。

 

普通电脑接入到普通交换机,叫做接入层,它负责把电脑接入到网络里面;主机联网以后,交换机之间彼此的连接往往希望外一些安全控制,比如实现一些访问控制,一般来讲用就会用到分布层,分布层一般是用路器来实现服务功能,因为只有路由器才能制定两个网络之间的安全策略,起到了路由,安全,广域网等功能。


但是在有些特定的场合下,我们可能需要额外的一层叫核心层。

核心层的作用是起到快速转发的功能,比方说有些工业区里有很多办公大楼,就会有很多交换机,交换机连接到了后端的路由器上,路由器可以起到路由、安全、广域网等功能,把不同网络的主机连接起来,但是路由器的性能是有限的,如果使园区里一些非常重要的服务器能够被主机快速地访问,就需要用到核心层。

 

核心层用的是高端的高速交换机,这个交换机的性能提高,它可以连接到路由器上,而且由于交换机的性能特别好,因此可以直接连接服务器。

 

服务器接到高速交换机上速度是相当高的,可以达到10G以上的速度,这样就可以实现园区各大楼主机快速访问服务器且性能不会受到很大影响。

 

 

三、TCP/IP 协议栈


1TCP/IP 概念

Transmission Control Protocol/Internet Protocol

(传输控制协议/因特网互联协议)TCP/IP 是一个Protocol Stack,包括 TCPIP UDP ICMP RIP TELNET FTP SMTP

 

ARP 等许多协议,它最早发源于美国国防部(缩写为 DoD )的因特网的前身 ARPA 网项目,1983 1 月  1 日,TCP/IP 取代了旧的网络控制协议NCP,成为今天的互联网和局域网的基石和标准,由互联网工程任务组负责维护。

 

2TCP/IP 协议与osi参考模型之间的关系

实际上TCP/IP最早的时候,其前身是ARPA网络,这个网络的历史相当悠久,它的诞生日期和Unix的诞生是同一年——1969年。

 

osi模型大概是在1977年左右才出现的,所以osi 模型的历史还不是特别悠久。

 

TCP/IP协议是一个市场化的标准,历史太悠久而且得到了广泛普及,无论是局域网还是广域网,都用的是TCP/IP协议。

 

3、TCP/IP 的分层

应用层,传输层,Internet 层,网络访问层

 

4TCP/IP 分层和 ISO 参考模型分层的对应关系

image.png

 

TCP/IP 协议之所以称之为堆栈,是因为它并不是两个协议的加和,不是说TCPIP,不只是两个协议,而是一个协议的集合。

 

它最上面的一层相当于osi参考模型的上三层——应用层、表示层、会话层;再往下的传输层是一样的,功能也是一样的;TCP/IP协议里的Internet层,对应于osi 模型的网络层的;TCP/IP的数据链路层和物理层称为网络访问层。

 

 

四、TCP/IP  分层

1. Application(应用层)

image.png

 

http https ftp nfs dns tftp smtp pop3 imap ternet ssh QQ等都属于应用层协议,它们唯一的区别方式是端口号。应用层的协议种类繁多,可以通过etc/service查询

 

  • File transfer

-FTP

-TFTP

-Network File System


  • E-mail

- Simple Mail Transfer Protocol


  • Remote login

- Telnet

-rlogin


  • Network management

Simple Network Management

Protocol


  • Name management

- Domain Name System

 

2Transport(传输层)

image.png

为应用层提供服务,用的较多的两个协议是TCP UDP。传输层要为应用层的不同协议提供特殊标记(即通过端口号)。

 

传输层的注主要功能对应于osi 模型中的传输层功能:

可以支持多路会话、分段、流控制、面向连接、可靠(流控制、面向连接、可靠均是在特定协议下的功能)

 

  • 可靠性(TCP协议) VS 高效性(UDP 协议)

 

Reliable

 

Best-Effort

 

Connection Type

 

Connection-oriented

 

Connectionless

 

Protocol

TCP(传输控制协议)

 

UDP(用户数据包协议)

 

Sequencing

 

Yes

 

No

 

Uses

 

. E-mail(邮件)

. File sharing(文件共享)

Downloading(文件下载)

 

. Voice streaming

. Video streaming

 

3、Internet

与上述同理,在Internet 层要体现上层(传输层)的协议类型,也应有一个特殊标记

4、Network Access

 

 

五、TCP 协议特性


1、工作在传输层

2、面向连接协议

3、全双工协议(双向的传输)

4、半关闭

5、错误检查

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

7、确认机制

8、数据恢复,重传

9、流量控制,滑动窗口

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

 

 

六、TCP 包头


决定TCP特性的因素,位于传输层,传输层的报文头部TCP在中间,它的外层是网络层的头部,TCP是传输层,传输层在里面,内层应该是会话层的头部。


TCP处于网络层和会话层中间的位置,对应字母TT字母前面是网络层,再往后是S,表示会话层。传输层是中间传输层的第一种格式,当然也有UDP 格式,传输层的TCP 头部的报文格式如下图所示。该图是按照二进制绘制的。


一行是031个位,共32位。其中015表示源端口,1631表示目标端口。

image.png

 

1、端口号定义:TCP 协议 PORT


端口号相当于应用程序的唯一标识,即一个程序的地址。传输层通过 port 号,确定应用层协议Port number:


  • tcp: 传输控制协议,面向连接的协议;通信前需要建立虚拟链路;结束后拆除链路0-65535
  • udp:User Datagram Protocol,无连接的协议0-65535


0-1023这是互联网数字分配机构(IANA)进行分配的,如果自己开发一个软件,必然要使用某个端口号,此时不要用01023了,因为国际上有关于1023的标准定义,已经被一些通用著名程序使用了,可以使用高一些的端口号。

 

22ssh)、著名的HTTP80)、HTTPS443)、dns(53)ftp(2120)tftp(69)smtp(25)pop3(110)imap(143)ternet(23)mysql(3306)Oracle1521)、sql server(1433)1024-49151用户端口或注册端口,要求并不严格,分配给程序注册为某应用使用。


49152-65535:动态端口或私有端口,客户端程序随机使用的端口,其范围的定义:/proc/sys/net/ipv4/ip_local_port_range

 

2、源端口、目标端口

计算机上的进程要和其他进程通信是要通过计算机端口的,而一个计算机端口某个时刻只能被一个进程占用,所以通过指定源端口和目标端口,就可以知道是哪两个进程需要通信。源端口、目标端口是用 16 位表示的,可推算计算机的端口个数为 2^16

 

3、序列号

表示本报文段所发送数据的第一个字节的编号。在 TCP连接中所传送的字节流的每一个字节都会按顺序编号。

由于序列号由 32 位表示,所以每 2^32 个字节,就会出现序列号回绕,再次从 0 开始

 

4、确认号

表示接收方期望收到发送方下一个报文段的第一个字节数据的编号。也就是告诉发送发:

我希望你(指发送方)下次发送的数据的第一个字节数据的编号是这个确认号

 

5、数据偏移

表示TCP 报文段的首部长度,共 4 位,由于 TCP 首部包含一个长度可变的选项部分,需要指定这个 TCP 报文段到底有多长。它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。

该字段的单位是 32 位(即 4 个字节为计算单位), 4位二进制最大表示 15,所以数据偏移也就是 TCP 首部最大 60字节

 

6、标记位

  • 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 报文段称为结束报文段

 

 

7、通讯的面向连接:

   image.png

TCP是面向连接的协议,所谓面向连接就是在通讯之前要确保对方与自己有一个可靠的连接,它是通过三个过程来实现,俗称三次握手。例如,A想和B通讯,假设A是客户端,B是服务器地址和服务器。

 

客户端想连服务器的时候,如果用TCP协议,例如我们平时使用的HTTP 服务都是基于TCP协议,在进行通讯的时候,第一步要检查有没有可靠连接,会把标记的SYN(同步位)打为1,第一次的数据就以这样的方式发送出去了,发出去时也存有一个序列号,记作x

 

发出去对方收到以后,确认并回ACK,然后再发一个确认表示第二步回来的信息收到了。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
4天前
|
负载均衡 网络协议 算法
|
7天前
|
网络协议 安全 Go
Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
【10月更文挑战第28天】Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
32 13
|
5天前
|
Unix Linux Shell
linux入门!
本文档介绍了Linux系统入门的基础知识,包括操作系统概述、CentOS系统的安装与远程连接、文件操作、目录结构、用户和用户组管理、权限管理、Shell基础、输入输出、压缩打包、文件传输、软件安装、文件查找、进程管理、定时任务和服务管理等内容。重点讲解了常见的命令和操作技巧,帮助初学者快速掌握Linux系统的基本使用方法。
31 3
|
6天前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
7天前
|
网络协议 算法 网络性能优化
计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议
计算机网络常见面试题(一):TCP/IP五层模型、应用层常见的协议、TCP与UDP的区别,TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议、ARP协议
|
15天前
|
Web App开发 缓存 网络协议
不为人知的网络编程(十八):UDP比TCP高效?还真不一定!
熟悉网络编程的(尤其搞实时音视频聊天技术的)同学们都有个约定俗成的主观论调,一提起UDP和TCP,马上想到的是UDP没有TCP可靠,但UDP肯定比TCP高效。说到UDP比TCP高效,理由是什么呢?事实真是这样吗?跟着本文咱们一探究竟!
42 10
|
9天前
|
网络协议 安全 NoSQL
网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-2):scapy 定制 ARP 协议 、使用 nmap 进行僵尸扫描-实战演练、就怕你学成黑客啦!
scapy 定制 ARP 协议 、使用 nmap 进行僵尸扫描-实战演练等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!
网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-2):scapy 定制 ARP 协议 、使用 nmap 进行僵尸扫描-实战演练、就怕你学成黑客啦!
|
29天前
|
网络协议 网络虚拟化 网络架构
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(上)
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(上)
55 1
|
1月前
|
网络协议 算法 数据格式
【TCP/IP】UDP协议数据格式和报文格式
【TCP/IP】UDP协议数据格式和报文格式
96 3
|
1月前
|
XML JSON 网络协议
【TCP/IP】自定义应用层协议,常见端口号
【TCP/IP】自定义应用层协议,常见端口号
19 3