1- 网路通讯
网络通信概述
1. 什么是网络
说明
- 网络就是一种辅助双方或者多方能够连接在一起的工具
- 如果没有网络可想
单机
的世界是多么的孤单
2. 使用网络的目的
就是为了联通多方然后进行通信用的,即把数据从一方传递给另外一方
前面的学习编写的程序都是单机的,即不能和其他电脑上的程序进行通信
为了让在不同的电脑上运行的软件,之间能够互相传递数据,就需要借助网络的功能
小总结
- 使用网络能够把多方链接在一起,然后可以进行数据传递
- 所谓的网络编程就是,让在不同的电脑上的软件能够进行数据传递,即进程之间的通信
网络体系结构
仔细想一下,身在北京的你想给在上海的女友如花寄一封情书,整个的通信过程是怎样的?
1. 网络层级模型
计算机在进行网络通讯的时候,也要经过上图所示的类比流程。我们在实现通讯的时候,为了让整个流程的各个环节各司其职,将其按照各自所做的工作类别划分为不同的层级,彼此协作完成整个工作。
2. TCP/IP参考模型
TCP/IP参考模型是一个网络通信模型,以及一整个网络传输协议家族,为互联网的基础通信架构。它常被通称为TCP/IP协议族(英语:TCP/IP Protocol Suite,或TCP/IP Protocols),简称TCP/IP。因为该协议家族的两个核心协议:TCP(传输控制协议)和IP(网际协议),为该家族中最早通过的标准。这些协议最早发源于美国国防部(缩写为DoD)的ARPA网项目,因此也被称作DoD模型(DoD Model)。
-
第4层 应用层
完成要传输的特定计算机应用程序专用数据的组织封装工作。可对比理解为决定让快递公司寄送什么东西。
-
第3层 传输层
完成控制数据传输的先后发送顺序,确保数据是否正确抵达对方的工作。可对比理解为选择哪家快递公司(是让不能保证包裹不被丢失的邮政平邮寄送,还是选择安全可靠的顺丰快递负责传递)。
-
第2层 网络层(网络互联层)
负责标识计算机网路中不同计算的位置,决定数据传输的路径。可对比理解为快递公司在运输包裹时运输路线的选择,会经过哪些城市站点。
-
第1层 链路层(网络接口层)
负责相邻两台设备间的数据发送接收工作。可对比理解为快递公司在运输包裹时,两个途经站点(城市)间用什么设备怎么运输的问题(用汽车、火车还是飞机)。
层与层相互协作的时候,即数据在经历不同网络层级的时候,会有数据的打包与解包工作。
3. OSI模型
开放式系统互联通信参考模型(英语:Open System Interconnection Reference Model,缩写为 OSI),简称为OSI模型(OSI model),一种概念模型,由国际标准化组织(ISO)提出,一个试图使各种计算机在世界范围内互连为网络的标准框架。定义于ISO/IEC 7498-1。
4. TCP/IP模型与OSI模型的对比
5. 协议
有的说英语,有的说中文,有的说德语,说同一种语言的人可以交流,不同的语言之间就不行了
为了解决不同种族人之间的语言沟通障碍,现规定国际通用语言是英语,这就是一个规定,这就是协议
我们想让网络通讯的每一层在工作时,都能按照其相应的某一种具体的工作流程来工作,比如具体的规章制度、规则、工作的标准,我们就需要制定出这些规则标准,这就是我们所说的不同网络层中的协议。
6. 协议列举
-
应用层(application layer)
OSI Layer 7
DHCP(v6) DNS FTP Gopher HTTP(SPDY、HTTP/2) IMAP4 IRC NNTP XMPP POP3 SIP SMTP SNMP SSH TELNET RPC RTCP RTP RTSP SDP SOAP GTP STUN NTP SSDP
-
表示层(presentation layer)
OSI Layer 6
该层被弃用。应用层的HTTP、FTP、Telnet等协议有类似的功能。传输层的TLS/SSL也有类似功能。
-
会话层(session layer)
OSI Layer 5
该层被弃用。应用层的HTTP、RPC、SDP、RTCP等协议有类似的功能。
-
传输层(transport layer)
OSI Layer 4
TCP(T/TCP · Fast Open) UDP DCCP SCTP RSVP PPTP TLS/SSL
-
网络层(network layer)
OSI Layer 3
IP(v4·v6) ICMP(v6) IGMP IS-IS IPsec BGP RIP OSPF RARP
-
数据链路层(data link layer)
OSI Layer 2
Wi-Fi(IEEE 802.11) ARP WiMAX(IEEE 802.16) ATM DTM 令牌环 以太网 FDDI 帧中继 GPRS EV-DO HSPA HDLC PPP PPPoE L2TP ISDN SPB STP
-
物理层(physical layer)
OSI Layer 1
以太网 调制解调器 电力线通信 同步光网络 G.709 光导纤维 同轴电缆 双绞线
ip地址
1. 什么是地址
地址就是用来标记地点的
2. ip地址的作用
ip地址:用来在网络中标记一台电脑的一串数字,比如192.168.1.1;在本地局域网上是惟一的。
每一个IP地址包括两部分:网络地址和主机地址
子网掩码
要想理解什么是子网掩码,就不能不了解IP地址的构成。互联网是由许多小型网络构成的,每个网络上都有许多主机,这样便构成了一个有层次的结构。IP地址在设计时就考虑到地址分配的层次特点,将每个IP地址都分割成网络号和主机号两部分,以便于IP地址的寻址操作。
IP地址的网络号和主机号各是多少位呢?
如果不指定,就不知道哪些位是网络号、哪些是主机号,这就需要通过子网掩码来实现。
子网掩码不能单独存在,它必须结合IP地址一起使用。
子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分子网掩码的设定必须遵循一定的规则。
与IP地址相同,子网掩码的长度也是32位,
- 左边是网络位,用二进制数字“1”表示;
- 右边是主机位,用二进制数字“0”表示。
假设IP地址为“192.168.1.1”子网掩码为“255.255.255.0”。
其中,“1”有24个,代表与此相对应的IP地址左边24位是网络号;
“0”有8个,代表与此相对应的IP地址右边8位是主机号。
这样,子网掩码就确定了一个IP地址的32位二进制数字中哪些是网络号、哪些是主机号。
这对于采用TCP/IP协议的网络来说非常重要,只有通过子网掩码,才能表明一台主机所在的子网与其他子网的关系,使网络正常工作。
最常用的两种子网掩码
子网掩码是“255.255.255.0”的网络:
最后面一个数字可以在0~255范围内任意变化,因此可以提供256个IP地址。
但是实际可用的IP地址数量是256-2,即254个,因为主机号不能全是“0”或全是“1”。
主机号全为0,表示网络号
主机号全为1,表示网络广播
注意
如果将子网掩码设置过大,也就是说子网范围扩大,那么,根据子网寻径规则,很可能发往和本地主机不在同一子网内的目标主机的数据,会因为错误的判断而认为目标主机是在同一子网内,那么,数据包将在本子网内循环,直到超时并抛弃,使数据不能正确到达目标主机,导致网络传输错误;如果将子网掩码设置得过小,那么就会将本来属于同一子网内的机器之间的通信当做是跨子网传输,数据包都交给缺省网关处理,这样势必增加缺省网关(文章下方有解释)的负担,造成网络效率下降。因此,子网掩码应该根据网络的规模进行设置。如果一个网络的规模不超过254台电脑,采用“255.255.255.0”作为子网掩码就可以了,现在大多数局域网都不会超过这个数字,因此“255.255.255.0”是最常用的IP地址子网掩码;假如在一所大学具有1500多台电脑,这种规模的局域网可以使用“255.255.0.0”。
端口
1. 什么是端口
那么TCP/IP协议中的端口指的是什么呢?
端口就好一个房子的门,是出入这间房子的必经之路。
如果一个进程需要收发网络数据,那么就需要有这样的端口
在linux系统中,端口可以有65536(2的16次方)个之多!
既然有这么多,操作系统为了统一管理,所以进行了编号,这就是端口号
2. 端口号
端口是通过端口号来标记的,端口号只有整数,范围是从0到65535
3. 端口是怎样分配的
端口号不是随意使用的,而是按照一定的规定进行分配。
端口的分类标准有好几种,我们这里不做详细讲解,只介绍一下知名端口和动态端口
3.1 知名端口(Well Known Ports)
知名端口是众所周知的端口号,范围从0到1023
80端口分配给HTTP服务
21端口分配给FTP服务
可以理解为,一些常用的功能使用的号码是估计的,好比 电话号码110、10086、10010一样
一般情况下,如果一个程序需要使用知名端口的需要有root权限
3.2 动态端口(Dynamic Ports)
动态端口的范围是从1024到65535
之所以称为动态端口,是因为它一般不固定分配某种服务,而是动态分配。
动态分配是指当一个系统进程或应用程序进程需要网络通信时,它向主机申请一个端口,主机从可用的端口号中分配一个供它使用。
当这个进程关闭时,同时也就释放了所占用的端口号。
3.3 怎样查看端口 ?
用“netstat -an”查看端口状态
4. 小总结
端口有什么用呢 ? 我们知道,一台拥有IP地址的主机可以提供许多服务,比如HTTP(万维网服务)、FTP(文件传输)、SMTP(电子邮件)等,这些服务完全可以通过1个IP地址来实现。那么,主机是怎样区分不同的网络服务呢?显然不能只靠IP地址,因为IP地址与网络服务的关系是一对多的关系。实际上是通过“IP地址+端口号”来区分不同的服务的。 需要注意的是,端口并不是一一对应的。比如你的电脑作为客户机访问一台WWW服务器时,WWW服务器使用“80”端口与你的电脑通信,但你的电脑则可能使用“3457”这样的端口。
Packet Tracer 介绍&安装
1. Packet Tracer介绍
Packet Tracer 是由Cisco(著名网络公司,思科)公司发布的一个辅助学习工具,
为学习思科网络课程的初学者去设计、配置、排除网络故障提供了网络模拟环境。
用户可以在软件的图形用户界面上直接使用拖曳方法建立网络拓扑,并可提供数据包在网络中行进的详细处理过程,观察网络实时运行情况。
2. 安装
学习网通信过程的重要性
在浏览器中输入 www.itcast.cn后,访问的整个过程有哪些?
2台电脑组网
1.在packet tracer中完成如下示图的操作
通过集线器组网
集线器又名hub
1. 通过hub链接网络
2. 总结
- hub(集线器)能够完成多个电脑的链接
- 每个数据包的发送都是以广播的形式进行的,容易堵塞网络
通过交换机组网
1. 网络交换机介绍
网络交换机(又称“网络交换器”),是一个扩大网络的器材,能为子网络中提供更多的连接端口,以便连接更多的计算机 具有性能价格比高、高度灵活、相对简单、易于实现等特点 以太网技术已成为当今最重要的一种局域网组网技术,网络交换机也就成为了最普及的交换机
家用级:
交换机的作用:
- 转发过滤:当一个数据帧的目的地址在MAC地址表中有映射时,它被转发到连接目的节点的端口而不是所有端口(如该数据帧为广播帧则转发至所有端口)
- 学习功能:以太网交换机了解每一端口相连设备的MAC地址,并将地址同相应的端口映射起来存放在交换机缓存中的MAC地址表中
2. 通信过程(pc+switch)
在Packet Tracer 中,完成如下图示的链接:
注意:
-
每台pc必须手动设置IP、netmask
192.168.1.1/255.255.255.0 …… 192.168.1.8/255.255.255.0
arp缓存表
- 每台pc都会有一个arp缓存表,用来记录IP所对应的的MAC
2. 总结
- 交换机能够完成多个电脑的链接
- 每个数据包的发送都是以广播的形式进行的,容易堵塞网络
- 如果PC不知目标IP所对应的的MAC,那么可以看出,pc会先发送arp广播,得到对方的MAC然后,在进行数据的传送
- 当switch第一次收到arp广播数据,会把arp广播数据包转发给所有端口(除来源端口);如果以后还有pc询问此IP的MAC,那么只是向目标的端口进行转发数据
通过路由器组网
1. 路由器简介
路由器(Router)又称网关设备(Gateway)是用于连接多个逻辑上分开的网络
所谓逻辑网络是代表一个单独的网络或者一个子网。当数据从一个子网传输到另一个子网时,可通过路由器的路由功能来完成
具有判断网络地址和选择IP路径的功能
家用级:
企业级:
2. 通信过程(pc+switch+router)
通过2个router,2个switch,4台pc组成的网络,如下:
说明:
-
配置所有pc的IP、netmask
pc0(192.168.1.1/24) pc1(192.168.1.2/24) pc2(192.168.3.1/24) pc3(192.168.3.2/24)
-
配置router(每个router有2个IP)
router0(192.168.1.254/24,192.168.2.1/24) router1(192.168.3.254/24,192.168.2.2/24)
配置后的网络信息如下:
3. 总结
- 不在同一网段的pc,需要设置默认网关才能把数据传送过去 通常情况下,都会把路由器默认网关
- 当路由器收到一个其它网段的数据包时,会根据“路由表”来决定,把此数据包发送到哪个端口;路由表的设定有静态和动态方法
- 每经过一次路由器,那么TTL值就会减一
在dos控制端下,可通过输入命令查看路由表:
交换机、路由器、服务器组网
1. 通信过程(pc+switch+router+server)
较为复杂的通信过程如:访问 www.itheima.com
注意:一定要配置
- PC:IP、NETMASK、DFGATEWAY、DNS
- ROUTER:IP、NETMASK、路由表
总结
- DNS服务器用来解析出IP(类似电话簿)
- DFGATEWAY(默认网关)用来对顶,当发送的数据包的目的ip不是当前网络时,此数据包包转发的目的ip
- 在路由器中路由表指定数据包的”下一跳”的地址