day7.网络编程--基本概念

(一)网络

  • 网络是一种辅助双方或者多方能够连接在一起的工具。
  • 使用网络就是为了联通多⽅然后进⾏通信⽤的,即把数据从⼀⽅传递给另外⼀⽅;前⾯学习编写的程序都是单机的,即不能和其他电脑上的程序进⾏通信,为了让在不同的电脑上运⾏的软件之间能够互相传递数据,就需要借助⽹络的功能。
  • 所谓的⽹络编程就是,让在不同的电脑上的软件能够进⾏数据传递,即 进程之间的通信

如下图:

(二)Tcp/Ip 简介

首先我们要引入一个概念叫做--协议

什么是协议,就像世界上有很多种语言,而为了解决不同种族⼈之间的语⾔沟通障碍,现规定国际通⽤语⾔是英语,这就是⼀个规定,这就是协议。

而不同种类之间的计算机进⾏数据传递就像说不同语⾔的⼈沟通⼀样,只要有⼀种⼤家都认可都遵守的协议即可, 那么这个计算机都遵守的⽹络通信协议叫做 TCP/IP协议

常⽤的⽹络协议如下图所示:

(三)端口

那么TCP/IP协议中的端⼝指的是什么呢?

端⼝就好⼀个房⼦的⻔,是出⼊这间房⼦的必经之路。

如下图:

一台机器上的飞秋信息通过交换机发送到另一台机器上,但是另一台机器如何知道该他的飞秋进行接受呢?这里就要到端口。

 

如果⼀个进程需要收发⽹络数据,那么就需要有这样的端⼝

在linux系统中,端⼝可以有65536(2的16次⽅)个之多! 既然有这么多,操作系统为了统⼀管理,所以进⾏了编号,这就是 端⼝号

端⼝是通过端⼝号来标记的,端⼝号只有整数,范围是从0到65535

端口是如何分类的呢,这里简单介绍两种:

  • 知名端口:

知名端⼝是众所周知的端⼝号,范围从0到1023

80端⼝分配给HTTP服务 21端⼝分配给FTP服务

可以理解为,⼀些常⽤的功能使⽤的号码是估计的,好⽐ 电话号码110、 10086、10010⼀样

  •  动态端口:

动态端⼝的范围是从1024到65535;

之所以称为动态端⼝,是因为它⼀般不固定分配某种服务,⽽是动态分配。

动态分配是指当⼀个系统进程或应⽤程序进程需要⽹络通信时,它向主机申 请⼀个端⼝,主机从可⽤的端⼝号中分配⼀个供它使⽤。 当这个进程关闭时,同时也就释放了所占⽤的端⼝号。

 小结:

  端口有什么⽤呢 ? 我们知道,⼀台拥有IP地址的主机可以提供许多服务,⽐如HTTP(万维⽹服务)、FTP(⽂件传输)、SMTP(电⼦邮件)等,这些服务完全可以通过1个IP地址来实现。那么,主机是怎样区分不同的⽹络服务呢?显然不能只靠IP地址,因为IP地址与⽹络服务的关系是⼀对多的关系。 实际上是通过“IP地址+端⼝号”来区分不同的服务的。 需要注意的是,端⼝并不是⼀⼀对应的。⽐如你的电脑作为客户机访问⼀台WWW服务器时, WWW服务器使⽤“80”端⼝与你的电脑通信,但你的电脑则可能使⽤“3457”这样的端⼝。

 (四)ip地址

  • ip地址:⽤来在⽹络中标记⼀台电脑的⼀串数字,⽐如192.168.1.1;在本地局域⽹上是惟⼀的。

试看如下的信息发送如何完成呢?

 

这时,我们就需要知道张三的ip地址,然后通过网络发给他。

  • ip地址分类

 每⼀个IP地址包括两部分:⽹络地址和主机地址

A,B,C类ip地址前面的网络号可以想象成当前有多少个网络,而后面的主机号表示在当前某一个网络下有都少个主机。

A类IP地址 :

⼀个A类IP地址由 1字节的⽹络地址和3字节主机地址组成,

⽹络地址的最⾼ 位必须是“0”, 地址范围1.0.0.1-126.255.255.254

⼆进制表示为:00000001 00000000 00000000 00000001 - 01111110 11111111 11111111 11111110 可⽤的A类⽹络有126个,每个⽹络能容纳1677214个主机。

B类IP地址:

⼀个B类IP地址由 2个字节的⽹络地址和2个字节的主机地址组成,

⽹络地址 的最⾼位必须是“10”, 地址范围128.1.0.1-191.255.255.254

⼆进制表示为:10000000 00000001 00000000 00000001 - 10111111 11111111 11111111 11111110 可⽤的B类⽹络有16384个,每个⽹络能容纳65534主机。

C类IP地址:

⼀个C类IP地址由 3字节的⽹络地址和1字节的主机地址组成,

⽹络地址的最⾼位必须是“110” 范围192.0.1.1-223.255.255.254

⼆进制表示为: 11000000 00000000 00000001 00000001 - 11011111 11111111 11111110 11111110 C类⽹络可达2097152个,每个⽹络能容纳254个主机

D类地址:⽤于多点⼴播

D类IP地址第⼀个字节以“1110”开始,它是⼀个专⻔保留的地址。

它并不指向特定的⽹络,⽬前这⼀类地址被⽤在多点⼴播(Multicast)中多点⼴播地址⽤来⼀次寻址⼀组计算机

地址范围224.0.0.1-239.255.255.254

E类IP地址 :

以“1111”开始,为将来使⽤保留 E类地址保留,仅作实验和开发⽤。

(五)子网掩码

要想理解什么是⼦⽹掩码,就不能不了解IP地址的构成。互联⽹是由许多⼩型⽹络构成的,每个⽹络上都有许多主机,这样便构成了⼀个有层次的结构。IP地址在设计时就考虑到地址分配的层次特点,将每个IP地址都分割成⽹络号和主机号两部分,以便于IP地址的寻址操作。

IP地址的⽹络号和主机号各是多少位呢?如果不指定,就不知道哪些位是⽹络号、哪些是主机号,这就需要通过⼦⽹掩码来实现。

⼦⽹掩码不能单独存在,它必须结合IP地址⼀起使⽤。

⼦⽹掩码只有⼀个作⽤,就是将某个IP地址划分成⽹络地址和主机地址两部分

⼦⽹掩码的设定必须遵循⼀定的规则:

与IP地址相同,⼦⽹掩码的⻓度也是32位 左边是⽹络位,⽤⼆进制数字“1”表示; 右边是主机位,⽤⼆进制数字“0”表示。

接下来我们举个例子:

假设IP地址为“192.168.1.1”    其⼦⽹掩码为“255.255.255.0”。

其中,根据前面所说的ip地址组成规则,我们可以知道,该子网掩码前24为均为1;后八位均为0。
所以,前24位均为网络位,后8位均为主机位。
而该ip地址也就是前面的C类ip,两者匹配。

注意 :

如果将⼦⽹掩码设置过⼤,也就是说⼦⽹范围扩⼤,那么,根据⼦⽹寻径规则,很可能发往和本地主机不在同⼀⼦⽹内的⽬标主机的数据,会因为错误的判断⽽认为⽬标主机是在同⼀⼦⽹内,那么,数据包将在本⼦⽹内循环, 直到超时并抛弃,使数据不能正确到达⽬标主机,导致⽹络传输错误;

如果 将⼦⽹掩码设置得过⼩,那么就会将本来属于同⼀⼦⽹内的机器之间的通信当做是跨⼦⽹传输,数据包都交给缺省⽹关处理,这样势必增加缺省⽹关的负担,造成⽹络效率下降。

因此,⼦⽹掩码应该根据⽹络的规模进⾏设置。如果⼀个⽹络的规模不超过254台电脑,采 ⽤“255.255.255.0”作为⼦⽹掩码就可以了,现在⼤多数局域⽹都不会超过这 个数字,因此“255.255.255.0”是最常⽤的IP地址⼦⽹掩码;假如在⼀所⼤学 具有1500多台电脑,这种规模的局域⽹可以使⽤“255.255.0.0”。

猜你喜欢

转载自www.cnblogs.com/boru-computer/p/9767801.html