网站首页 > 基础教程 正文
话不多说直接开始
网络
网络是人与人之间通过设备与设备之间通信的工具。如果没有网络人和人只能面对面的进行说话交流,玩游戏也只能玩单机。使用网络能够把多方链接在一起,然后可以进行数据传递,为了让在不同的电脑上运行的软件,之间能够互相传递数据,就需要借助网络的功能。所谓的网络编程就是,让在不同的电脑上的软件能够进行数据传递,即进程之间的通信。
IP地址
普通生活中的地址指的就是一个位置,用来标记地点。IP是Internet Protocol(网际互连协议)的缩写,是TCP/IP体系中的网络层协议。IP地址就是用来在网络中唯一标记一台电脑或者一台设备。比如192.168.0.1,在本地局域网上是唯一的。
当然为了避免混乱,IP协议对IP地址进行了分类。
1. 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个主机
2. 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主机
3. 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个主机
4. D类地址用于多点广播
D类IP地址第一个字节以“1110”开始,它是一个专门保留的地址。
它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中
多点广播地址用来一次寻址一组计算机 s 地址范围224.0.0.1-239.255.255.254
5. E类IP地址
以“1111”开始,为将来使用保留,E类地址保留,仅作实验和开发用
6. 私有ip
在这么多网络IP中,国际规定有一部分IP地址是用于我们的局域网使用,也就
是属于私网IP,不在公网中使用的,它们的范围是:
10.0.0.0~10.255.255.255
172.16.0.0~172.31.255.255
192.168.0.0~192.168.255.255
目前IP协议有ipv4和ipv6两个版本,IPv4中规定IP地址长度为32,地址的文本格式为 nnn.nnn.nnn.nnn,其中 0<=nnn<=255,而每个 n 都是十进制数。IPv6中IP地址的长度为128,地址的文本格式为 xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx,其中每个 x 都是十六进制数,表示 4 位,ipv6更加的安全。前不久ipv4宣布所有地址已经使用完,现在开始ipv6将会慢慢的普及。
端口
端口就相当于门牌号,整个房屋代表的就是一个程序。如果一个程序需要收发网络数据,那么就需要有这样的端口。在linux系统中,端口可以有65536(2的16次方)个之多!既然有这么多,操作系统为了统一管理,所以进行了编号,这就是端口号。
端口是通过端口号来标记的,端口号只有整数,范围是从0到65535
知名端口(Well Known Ports):
知名端口是众所周知的端口号,范围从0到1023。可以理解为电话号码中的110,120,10086一样。一般情况下,如果一个程序需要使用知名端口的需要有root权限。
动态端口(Dynamic Ports):
动态端口的范围是从1024到65535。之所以称为动态端口,是因为它一般不固定分配某种服务,而是动态分配。动态分配是指当一个系统程序或应用程序程序需要网络通信时,它向主机申请一个端口,主机从可用的端口号中分配一个供它使用。当这个程序关闭时,同时也就释放了所占用的端口号。
下面列举一些常用的端口号:
21端口:FTP 文件传输服务
22端口:SSH 远程连接服务
23端口:TELNET 终端仿真服务
25端口:SMTP 简单邮件传输服务
53端口:DNS 域名解析服务
80端口:HTTP 超文本传输服务
443端口:HTTPS 加密的超文本传输服务
3306端口:MYSQL数据库端口
5432端口:postgresql数据库端口
6379端口:Redis数据库端口
8080端口:TCP服务端默认端口
8888端口:Nginx服务器的端口
9200端口:Elasticsearch服务器端口
27017端口:mongoDB数据库默认端口
22122端口:fastdfs服务器默认端口
8000端口:Django程序默认端口
5000端口:Flask程序默认端口
URL
URL的英文全拼是(Uniform Resoure Locator),表达的意思是统一资源定位符,通俗理解就是网络资源地址,也就是我们常说的网址。
URL的组成
例如:
https://www.baidu.com/main/88/2019/ABCDEGFG.html?page=1&count=10
那么什么是域名呢?
域名就是IP地址的别名,它是用点进行分割使用英文字母和数字组成的名字,使用域名目的就是方便的记住某台主机IP地址。其实当我们访问一个网站输入网址的时候,浏览器会把网址发送给DNS服务器,通过DNS服务器解析出对应的IP地址然后开始访问对方的服务器。之后进行HTTP或者其他协议的访问,具体的访问原理将在后面给我,给个关注哈。
那么什么是DNS服务器?
DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。DNS中保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的表,以解析消息的域名。 所以选择好的DNS服务器将会大大提高我们的网络连接速度。
综上所述,不同电脑上的进程之间如何通信?
首要解决的问题是如何唯一标识一个进程,否则通信无从谈起!
在1台电脑上可以通过进程号(PID)来唯一标识一个进程,但是在网络中这是行不通的。
其实TCP/IP协议族已经帮我们解决了这个问题,网络层的“ip地址”可以唯一标识网络中的主机,而传输层的“协议+端口”可以唯一标识主机中的应用进程(进程)。
这样利用ip地址,协议,端口就可以标识网络的进程了,网络中的进程通信就可以利用这个标志与其它进程进行交互。
作者简介:Python菜鸟工程师,将在接下来的一段时间内与大家分享一些与Python相关的知识点。如若文中出现问题,各位大佬多多指点,互相学习。喜欢的关注一个吧!谢谢!
猜你喜欢
- 2024-11-17 Linux系统下运行c++程序(linux进行c++编程)
- 2024-11-17 还在重复劳动?不如用Python自动生成Excel以邮件发送
- 2024-11-17 2021年后端研发工程师面试题汇总(PHP/JAVA/GO)
- 2024-11-17 关于均数和标准差相关计算的梳理(均数和标准差的关系是什么)
- 2024-11-17 JAVA小白必学的代码编程技巧(java初学代码)
- 2024-11-17 热火!350道Java面试真题,涨薪6K的跳槽秘籍!(2020版)
- 2024-11-17 金九银十 1000道互联网工程师面试题 涨薪9K的跳槽秘籍
- 2024-11-17 Python学习必备的三个网站(学python最好的网站)
- 2024-11-17 mangodb基础(mongodb基础)
- 2024-11-17 一个 3 年 Java 程序员 5 家大厂的面试总结(已拿Offer)
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- queryselectorall (63)
- location.search (79)
- bootstrap教程 (74)
- deletesql (62)
- linuxgzip (68)
- 字符串连接 (73)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)