网络及TCP/IP简明快速基础

本文涉及的产品
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
简介: 网络基础知识,除了网络管理人员必须掌握之外,对于系统运维人员,数据库管理员以及程序员等多了解和掌握是有百利而无一害。

网络基础知识,除了网络管理人员必须掌握之外,对于系统运维人员,数据库管理员以及程序员等多了解和掌握是有百利而无一害。本文简明扼要介绍了网络常见的名词及术语以及TCP/IP模型,并列出了几个网络相关的常见问题,旨在快速了解或者用于归纳型回顾这些知识。供大家参考。

一、常规名词术语

MAC地址:
  媒体访问控制,或称为物理地址、硬件地址,用来定义网络设备的位置。在OSI模型中,第三层网络层负责 IP地址,第二层数据链路层则负责 MAC地址。因此一个主机会有一个MAC地址,而每个网络位置会有一个专属于它的IP地址。

CSMA/CD:
  基带冲突检测的载波监听多路访问技术(载波监听多点接入/冲突检测),是一种争用型的介质访问控制协议。在传统的共享以太网中,所有的节点共享传输介质。如何保证传输介质有序、高效地为许多节点提供传输服务,就是以太网的介质访问控制协议要解决的问题。CSMA/CD应用在 OSI 的第二层数据链路层。

Token Ring令牌环:
  令牌环网(Token Ring)是一种 LAN 协议,定义在 IEEE 802.5 中,其中所有的工作站都连接到一个环上,每个工作站只能同直接相邻的工作站传输数据。通过围绕环的令牌信息授予工作站传输权限。

冲突域:
  所有在底层设备上能发生冲突的集合,可以使用以下方式解决冲突域
  网桥:是用来分割冲突域的设备
  多接口:交换机

广播域:
  指网络中所有能接收到同样广播消息的设备的集合

单播
  网络节点之间的通信就好像是人们之间的对话一样。如果一个人对另外一个人说话,那么用网络技术的术语来描述就是“单播”,此时信息的接收和传递只在两个节点之间进行。单播在网络中得到了广泛的应用,网络上绝大部分的数据都是以单播的形式传输的,只是一般网络用户不知道而已。例如,你在收发电子邮件、浏览网页时,必须与邮件服务器、Web服务器建立连接,此时使用的就是单播数据传输方式。但是通常使用“点对点通信”(Point to Point)代替“单播”,因为“单播”一般与“多播”和“广播”相对应使用。补充@20170907

多播
  “多播”也可以称为“组播”,在网络技术的应用并不是很多,网上视频会议、网上视频点播特别适合采用多播方式。因为如果采用单播方式,逐个节点传输,有多少个目标节点,就会有多少次传送过程,这种方式显然效率极低,是不可取的;如果采用不区分目标、全部发送的广播方式,虽然一次可以传送完数据,但是显然达不到区分特定数据接收对象的目的。采用多播方式,既可以实现一次传送所有目标节点的数据,也可以达到只对特定对象传送数据的目的。IP网络的多播一般通过多播IP地址来实现。多播IP地址就是D类IP地址,即224.0.0.0至239.255.255.255之间的IP地址。补充@20170907

物理网络介质:
  物理层,物理层协议:
  数据链路层,数据帧,链路层协议
  网络层:数据包,ip协议
  传输层:ip内部多一个端口,传输层协议 TCP.UDP
  TCP:0-65535
  UDP:0-65535
  应用层:标记资源

  端口:用于标记进程的
  0-65535:

Socket(套接字):ip:port
  源IP地址和目的IP地址以及源端口号和目的端口号的组合称为套接字。其用于标识客户端请求的服务器和服务。
  网络通信必需的五种信息:
    连接使用的协议
    本地主机的IP地址
    本地进程的协议端口
    远地主机的IP地址
    远地进程的协议端口
  套接字分类
    流套接字(SOCK_STREAM),提供面向连接、可靠的数据传输服务,即TCP(The Transmission Control Protocol)协议
    数据报套接字(SOCK_DGRAM),该服务并不能保证数据传输的可靠性,数据报套接字使用UDP(User Datagram Protocol)协议进行数据的传输。
    原始套接字(SOCK_RAW),允许对较低层次的协议直接访问,比如IP、 ICMP协议

MTU:Maximum Translater Unit
  最大传输单元,指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位,通常为1500)。
  最大传输单元这个参数通常与通信接口有关(网络接口卡、串口等)。
  对于大于MTU单位的数据库传输,则需要进行分片(Fragment:IP分片)。
  MTU越大,则一个协议数据单元的承载的有效数据就越长,通信效率也越高。MTU越大,传送相同的用户数据所需的数据包个数也越低。
  反过来,MTU越大也容易导致数据包的延迟也越大,数据包中 bit位发生错误的概率也越大。

有限状态机(FSM:Finite State Machine)

协议栈:在内核实现
  TCP/IP协议簇

二、TCP/IP模型及IP地址、路由

  物理层: 利用物理传输介质为数据链路层提供物理连接,以便透明的传送比特流。常用设备有(各种物理设备)网卡、集线器、中继器、调制解调器、网线、双绞线、同轴电缆
  链路层:从设备到设备主机通信,MAC地址,MAC<–>IP(RARP/ARP),解决两个相邻结点之间的通信问题,传送的协议数据单元称为数据帧
  网络层: 从源主机到目标主机之间通信,IP地址,IP报文,解决如何使数据包通过各结点传送的问题
  传输层:从源主机进程到目标主机特定进程之间通信,tcp/udp,即提供端到端的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题
  应用层: 向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等

ISO/OSI模型:七层
  1-4层:通信子网
  5-7层:资源子网(对应到TCP/IP模型的应用层
  会话层
  表示层
  应用层

TCP:有连接协议,建立逻辑链接
  SYN,ACK,FIN,RST,PSH,URG

  三次握手:
    SYN=1 ACK=0,FIN=0
    SYN=1 ACK=1 FIN=0
    SYN=0 ACK=1 FIN=0
    四次断开:

主机名:FQDN(Full Qulified Domain Name)
  唯一表示因特网上一台主机的名称,通常形式为computer_name.domain.com

IP地址:
  用于为互联网上的每一个网络和每一台主机分配的一个逻辑地址,用于屏蔽物理地址差异(MAC地址为十六进制,难以记忆)
  IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。
  例:点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)。
  IP地址由网络ID和主机ID组成,即32位二进制中包含了网络ID和主机ID。同一物理网络网络ID相同,主机ID不同。
  由于使用的场景不同,因此,按使用情形分为大中小型网络,大型网络即子网少,主机多,小型网络则子网多,主机数少

类别  最大网络数      IP地址范围               最大主机数  私有IP地址范围              备注
---- ------------   ------------------------  -----------  ----------------------    --------------------------
A   126(2^7-2)    0.0.0.0-127.255.255.255  16777214    10.0.0.0-10.255.255.255   使用8位表示网络ID,大型网络
B   16384(2^14)    128.0.0.0-191.255.255.255  65534    172.16.0.0-172.31.255.255  使用16位表示网络ID,中型网络
C   2097152(2^21)  192.0.0.0-223.255.255.255  254      192.168.0.0-192.168.255.255 使用24位表示网络ID,小型网络
D                    224.0.0.0-239.255.255.255                               多播(组播)地址(multicast address)

D类IP地址在历史上被叫做多播地址(multicast address),即组播地址。
在以太网中,多播地址命名了一组应该在这个网络中应用接收到一个分组的站点。
多播地址的最高位必须是“1110”,范围从224.0.0.0到239.255.255.255。    

特殊的网址
每一个字节都为0的地址(“0.0.0.0”)对应于当前主机;
IP地址中的每一个字节都为1的IP地址(“255.255.255.255”)是当前子网的广播地址;
IP地址中凡是以“11110”开头的E类IP地址都保留用于将来和实验使用。
IP地址中不能以十进制“127”作为开头,该类地址中数字127.0.0.1到127.255.255.255用于回路测试,
    如:127.0.0.1可以代表本机IP地址,用http://127.0.0.1就可以测试本机中配置的Web服务器。
网络ID的第一个8位组也不能全置为“0”,全“0”表示本地网络。
全0:网络地址
全1:广播地址

子网掩码(subnet mask)
  又叫网络掩码、地址掩码、子网络遮罩,主要用于指明一个IP地址的哪些位标识的是主机所在的子网ID,以及哪些位标识的是主机ID。
  子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。
  缺省的子网掩码
    A类:255.0.0.0
    B类:255.255.0.0
    C类:255.255.255.0

子网划分
  比如B类私有网络172.16.0.0/255.255.0.0现在需要将其划分子网,设定子网掩码为255.255.255.0
  由于全1的掩码在同IP地址做与运算时得到网络ID,即原来的网络ID由172.16变成了172.16.255
  则该地址的范围如下
    172.16.0.0/255.255.255.0 – 172.16.255.0/255.255.255.0

子网合并
  假定C类私有网络192.168.0.0/255.255.255.0 – 192.168.255.0/255.255.255.0进行如下合并
    192.168.0.0/255.255.0.0 则变成大网络

路由表:
  对于跨网络主机直接的通信与访问,借助于路由表来实现。
  路由表保存了到达特定网络终端的地址,其表项通常包括以下内容
    目标地址或目标网络(destination mask pre costdestination)
    子网掩码(netmask mask) ### Author : Leshami
    优先级(pre) ### Blog : http://blog.csdn.net/leshami
    路由开销(cost) ### QQ/Weixin : 645746311
    输出接口(interface)
    下一跳(nexthop)

  路由表生成方式
    静态设置
    动态生成(通告):

  cost:开销,成本
    经过的跳数越少就越小
  时长
  路由协议:RIP,OSPF,EIGRP
  可路由协议:IP协议 MAC协议

三、常见问答

如何判断目标主机与本机是否位于同一网段?
  利用子网掩码的功能来实现。基于二进制的特性, 1逻辑与任何数的结果为任何数,0逻辑与任何数结果为0
  首先本机利用子网掩码来与本机IP地址做逻辑与运算,即可以得到本机的网络ID以及主机ID
  其次将目标主机与本机的子网掩码做同样的运算,如果得到的网络ID相同,即位于同一个网络段。否则位于不同的网络段
  子网掩码连续全1的是网络地址,后面的是主机地址。
  对于不同的网络段IP地址通信,应通过路由器的路由表(或缺省网关)记录的网络段转发到不同的子网中去

根据IP地址及子网掩码如何计算得到子网ID,广播地址,地址范围,可容纳主机数目?

假如给定IP地址    IP: 58.61.29.11 Netmask:255.255.255.248

网络类型:58小于127,因此当前属于A类网络IP,缺省的掩码应当为255.0.0.0,当前使用非缺省掩码即255.255.255.248

    计算子网ID
          IP地址:    00111010.00111101.00011101.00001 011    //使用IP地址与子网掩码做与运算(换算成二进制)
          子网掩码:  11111111.11111111.11111111.11111 000  //留空列前为全1,即为子网地址,子网之后为主机地址 
          与运算结果:00111010.00111101.00011101.00001 000 
          网络ID:        58      61      29      8

          子网掩码全是1的为网络地址,也就是29位,如果用点分十进制表示,原IP地址可表示为58.61.29.9/29                

    计算广播地址
          与运算结果:00111010.00111101.00011101.00001 111 //将子网地址之后的主机地址变为全1,即为广播地址
          网络ID:       58      61      29      15

    计算IP范围
          地址范围是: 网络地址+1至广播地址-1 (网络地址+1即为第一个主机地址,广播地址-1即为最后一个主机地址)
          地址范围:58.61.29.9 - 58.61.29.146个IP地址
          主机数量:2^3-2=6个IP地址
相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
目录
相关文章
|
28天前
|
移动开发 网络协议 安全
网络面试题:什么是 TCP/IP?
网络面试题:什么是 TCP/IP?
43 0
网络面试题:什么是 TCP/IP?
|
29天前
|
监控 负载均衡 网络协议
TCP重传与超时机制:解锁网络性能之秘
TCP重传与超时机制:解锁网络性能之秘
58 0
|
2天前
|
网络协议 Java API
深度剖析:Java网络编程中的TCP/IP与HTTP协议实践
【4月更文挑战第17天】Java网络编程重在TCP/IP和HTTP协议的应用。TCP提供可靠数据传输,通过Socket和ServerSocket实现;HTTP用于Web服务,常借助HttpURLConnection或Apache HttpClient。两者结合,构成网络服务基础。Java有多种高级API和框架(如Netty、Spring Boot)简化开发,助力高效、高并发的网络通信。
|
10天前
|
网络协议 安全 网络性能优化
|
20天前
|
缓存 网络协议 数据库连接
【底层服务/编程功底系列】「网络通信体系」深入探索和分析TCP协议的运输连接管理的核心原理和技术要点
【底层服务/编程功底系列】「网络通信体系」深入探索和分析TCP协议的运输连接管理的核心原理和技术要点
20 0
|
29天前
|
网络协议 算法 Linux
探索TCP状态机之旅:发现网络连接的生命周期与神秘魅力
探索TCP状态机之旅:发现网络连接的生命周期与神秘魅力
67 0
|
30天前
|
网络协议 网络性能优化
网络面试题:TCP和UDP的区别
网络面试题:TCP和UDP的区别
25 0
|
1月前
|
网络协议 Python
Python网络编程实现TCP和UDP连接
Python网络编程实现TCP和UDP连接
27 0
|
网络协议
TCP/IP协议的介绍
TCP/IP协议是众多协议的统称,通过分层结构来管理。可分为七层模型或四层结构
|
网络协议 网络架构
六、TCP/IP模型 和 5层参考模型
六、TCP/IP模型 和 5层参考模型
六、TCP/IP模型 和 5层参考模型

热门文章

最新文章