Linux网络学习_网络的基本概念

Posted Leslie X徐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux网络学习_网络的基本概念相关的知识,希望对你有一定的参考价值。

网络的基本概念

概念

  1. 计算机联网目的
  • 使用远程资源
  • 共享资源、程序和数据
  • 分布处理
  1. 协议
  • 计算机网络中实现通信必须有一些约定,如对速率、传输代码、代码结构、传输控制和出错控制等约定,这些约定被定义为通信协议
  • 在两个节点之间要成功进行通信,两个节点之间必须遵守协议。
  • 在Internet中,最为通用的网络协议是TCP/IP协议。
  1. 网络分层模型
OSI七层模型TCP/IP四层模型例子
应用层应用层Telnet、FTP、SMTP、DNS、SNMP、Http
表示层--
会话层--
传输层传输层TCP,UDP
网络层网络层IP协议
数据链路层物理+数据链路Ethernet(IEEE802.3)
物理层--
  1. TCP/IP协议族
  • TCP/IP实际上是一个一起工作的通信家族,为国际数据通信提供通路。
  • TCP/IP协议族大体上分为三部分
    • Internet协议(IP)
    • 传输控制协议(TCP)和用户数据报文协议(UDP)
    • 处于TCP和UDP之上的一组应用层协议,专门开发的应用程序。它们包括远程登陆(TELENT)、文件传送协议(FTP)、域名服务(DNS)和简单的邮件传送程序(SMTP)等许多协议。
  1. 网络层协议
  • Internet协议(IP)
    • 该协议被设计成互联网分组交换通信网,以形成一个网际通信环境。它负责在源主机和目的主机之间传输来自其较高层软件(称为数据报文的数据块),它在源和目的地之间提供非连接型(不按顺序接收)、不可靠的传递服务。
  • 国际控制报文协议(ICMP)
    • ICMP实际上不是IP层部分,但直接同IP层一起工作,报告网络上的某些出错情况。允许网际路由器传输差错信息或测试报文。
  • 地址识别协议(ARP)
    • ARP实际上不是网络层部分,它处于IP和数据链路之间,它是在32位IP地址和48位局域网物理地址(MAC)之间执行翻译的协议。
  1. 传输层协议
  • 传输控制协议(TCP)
    • 可靠的面向连接的传输层服务
    • 主要功能:
      • 监听输入对话建立请求
      • 请求另一网络站点对话
      • 可靠的发送和接收数据
      • 适度的关闭对话
  • 用户数据报文协议(UDP)
    • UDP提供不可靠的非连接型传输层服务
      • 它允许在源和目的地的地站点之间传送数据,而不必在传送数据之前建立对话。
      • 不使用TCP使用的端对端差错校验。
      • 传输层功能全都发挥,而开销却比较低
      • 主要用于那些不要求TCP协议的非连接型的应用程序。例如:名字服务、网络管理、视频直播和网络会议等。
  1. 应用层协议
  • 远程登陆(TELENT)
  • 文件传送协议(FTP)
  • 域名服务(DNS)
  • 简单的邮件传送程序(SMTP)
  1. 数据封装
    数据经过每一层,增加一个相应头部
    在这里插入图片描述

  2. IP

  • IP的主要目的是为数据输入/输出网络提供基本算法,为高层协议提供无连接的传送服务。这意味着在IP将数据递交给接收站点以前不在传输站点和接收站点之间建立对话(虚拟链路)。它只是封装和传递数据,但不向发送者或接收者报告包的状态,不处理所遇到的故障。

  • IP协议有以下四个主要功能

    • 数据传送
    • 寻址
    • 路由选择
    • 数据报文的分段
  • IP协议不注意包内的数据类型,他所知道的一切是必须将某些称为IP帧头的控制协议加到高层协议(TCP或者UDP)所接受的数据上。

  • 封装在Ethernet帧中的IP信息在这里插入图片描述

  • 在TCP/IP网络中,每一个主机都有唯一的地址,它是通过IP协议来实现的。

  • IP协议要求在每次与TCP/IP网络建立连接时,每台主机都必须为这个连接分配一个唯一的32位地址,因为在这个32位IP地址中,不但可以用来识别某一台主机,而且还隐含着网际间的路径信息。

  • 主机是指网络上的一个节点,不能简单的理解为一台计算机,实际上IP地址是分配给计算机的网络适配器(即网卡)的,一台计算机可以有多个网络适配器,就可以有多个IP地址,一个网络适配器就是一个节点。

  • IP地址为32位地址,一般以4个字节表示。每个字节的数字又用十进制表示,每个字节的数的范围是0~225,且每个数字之间用点隔开,称为"点-分"十进制记号法。

  • IP地址的结构如下:网络类型.网络ID.主机ID

  1. IP地址分类
  • Internet地址可分为5类
地址类型第一个字节的十进制值
A000~127
B128~191
C192~233
D224~239
E240~255
  • A,B,C三类由InterNIC(Internet网络信息中心)在全球范围内统一分配,D,E类为特殊地址。
  1. 端口号
  • TCP/UDP协议使用16位整数存储端口号,所以每个主机拥有65535个端口。
  • 一些端口被IANA分配给指定应用
    • 21:FTP
    • 23:Telnet
    • 80:HTTP
    • RFC 1700(大约有2000个保留端口)
  • 查看:more /etc/services
# New ports will be added on request if they have been officially assigned
# by IANA and used in the real-world or are needed by a debian package.
# If you need a huge list of used numbers please install the nmap package.

tcpmux		1/tcp				# TCP port service multiplexer
echo		7/tcp
echo		7/udp
discard		9/tcp		sink null
discard		9/udp		sink null
systat		11/tcp		users
daytime		13/tcp
daytime		13/udp
netstat		15/tcp
qotd		17/tcp		quote
msp		18/tcp				# message send protocol
msp		18/udp
chargen		19/tcp		ttytst source
chargen		19/udp		ttytst source
ftp-data	20/tcp
ftp		21/tcp
fsp		21/udp		fspd
ssh		22/tcp				# SSH Remote Login Protocol
telnet		23/tcp
smtp		25/tcp		mail
time		37/tcp		timserver
time		37/udp		timserver
rlp		39/udp		resource	# resource location
nameserver	42/tcp		name		# IEN 116
whois		43/tcp		nicname
tacacs		49/tcp				# Login Host Protocol (TACACS)
tacacs		49/udp
domain		53/tcp				# Domain Name Server
domain		53/udp
bootps		67/udp
bootpc		68/udp
tftp		69/udp
gopher		70/tcp				# Internet Gopher
finger		79/tcp
http		80/tcp		www		# WorldWideWeb HTTP

  1. 传输控制协议(TCP)
  • TCP(Transmission Control Protocol)是重要的传输层协议,TCP提供一种面向连接的、可靠的字节流服务。
  • TCP协议的目的是允许数据同网络上的另外站点进行可靠的交换。它能提供端口编号的译码,以识别主机的应用程序,而且完成数据的可靠传输。
  • TCP协议具有严格的内装差错检验算法确保数据的完整性。
  • TCP协议是面向字节的顺序协议,这意味着包内的每个字节被分配一个顺序编号,并分配给每包一个顺序编号。
  • 封装在IP协议中的TCP信息在这里插入图片描述
  1. 用户数据报文协议(UDP)
  • UDP(User Datagram Protocol)也是TCP/IP的传输层协议,他是无连接的,不可靠的传输服务。当接收数据时它不向发送方提供确认信息,不提供输入包的顺序,如果出现丢包或重份包的情况,也不会向发送方发出差错报文。
    • 它允许在源和目的地的地站点之间传送数据,而不必在传送数据之前建立对话。
    • 不使用TCP使用的端对端差错校验。
    • 传输层功能全都发挥,而开销却比较低
  • 由于开销低,所以执行速度比TCP快。主要用于那些不要求TCP协议的非连接型的应用程序。例如:名字服务、网络管理、视频直播和网络会议等。

以上是关于Linux网络学习_网络的基本概念的主要内容,如果未能解决你的问题,请参考以下文章

网络通信模型基本以及Linux下高可用/Bonding的概念和用法

Linux学习_网络广播

机器学习算法

机器学习算法

Linux网络学习_socket套接字

要学习网络安全方面基础知识要怎么学习本人想往网络