网络编程基础
为了把计算机接入互联网,就必须要使用TCP/IP协议。
TCP/IP协议泛指互联网协议,其中最重要的两个就是TCP和IP协议,而使用其他网络协议都是无法接入互联网的
IP地址
在互联网中,一个IP地址用于标识一个唯一的网络接口(Network Interface)。一台接入互联网的计算机肯定至少有一个IP地址。
IP地址有两种,IPv4和IPv6,IPv4地址是32位的,IPv6是128位的,而目前IPv4的地址基本已经耗尽,IPv6的地址是根本用不完的。
IP地址又分为,公网IP和内网IP。公网IP可以被直接访问,而内网IP只能在内网被访问。
- 本机的地址,是
127.0.0.1
- 计算机有多少个网址,取决于它有多少个网卡,如果一台计算机有两块网卡,除了本机地址以外,它还可以有两个IP地址,可以分别接入两个网络。
- 通常交换机和路由器就是这阳接入两个网络的设备,他们把网络之间连接起来
网络号
如果两台计算机位于同一个网络,那么他们可以直接通信,因为他们的IP地址前段是相同的,也就是网络号是相同的。 网络号是IP地址通过子网掩码过滤后得到的,例如:
某台计算机IP为 101.202.99.2 , 子网掩码是 225.225.225.0
那么网络号为:
IP = 101.202.99.2Mask = 255.255.255.0
Network = IP & Mask = 101.202.99.0
如果两台计算机计算出来的网络号相同,说明两台计算机在同一个网络,可以直接通信。 如果两台计算机计算出的网络号不同,那么他们不能直接通信,需要通过路由器或者交换机这样的网络设备间接通信,我们把这种设备叫做网关。
网关的作用就是连接多个网络。
把来自一个网络的数据包发到另一个网络的过程叫做路由。
域名
因为IP地址是非常难以直接记忆的,所以我们经常通过某个域名访问某个特定的服务。
DNS系统
网络出现的早期,是使用IP地址进行通讯的,但是随着接入网络的主机数量的逐渐增多,这种数字标识的地址非常不便于记忆,UNIX上面就出现了hosts
文件,这个文件一般用于记录主机名称和IP地址的对应表,这样只要输入主机名称,系统就回去加载hosts
文件并且查找对应关系,找到对应的IP,这样就可以直接访问主机了。
但是后来主机太多了,无法保证所有人都能统一拿到最新的hosts
文件,于是就出现了在文件服务器上集中存放的hosts
文件,以供下载使用,但是随着互联网规模的越来越大,这种方法也编的低效了起来,于是DNS系统出现了,随着解析规模的继续扩大,DNS系统也在不断地演化,一直到了现在的多层架构体系。
- DNS概括
DNS(Domain Name System,域名系统),是一个因特网上作为域名和IP地址互相映射的一个分布式数据库,一个得到域名的过程叫做域名解析(或主机名解析)。DNS运行在UDP协议之上,使用端口号53
DNS的分布数据库是以域名为索引的,每个域名实际上就是一棵很大的逆向树中路径,这棵逆向树称为域名空间(domain name space),如下图所示树的最大深度不得超过127层,树中每个节点都有一个可以长达63个字符的文本标号。
- DNS的作用
DNS系统的作用
正向解析:根据主机名称(域名)查找对应的IP地址
反向解析:根据IP地址查找对应的主机域名
DNS系统的分布式数据结构
使用nslookup
可以查看域名对应的IP地址
网络模型
由于计算机网络从底层传递到高层非常复杂,所以需要合理地设计计算机网络模型,必须采分层模型
OSI模型
OSI(Open System Interconnect) 网络模型式ISO组织定义的一个计算机互联的标准模型,这个模型从上到下依次是:
- 应用层,提供应用程序之间的通信;
- 表示层:处理数据格式,加解密等等;
- 会话层:负责建立和维护会话;
- 传输层:负责提供端到端的可靠传输;
- 网络层:负责根据目标地址选择路由来传输数据;
- 链路层和物理层负责把数据进行分片并且真正通过物理网络传输,例如,无线网、光纤等。
而互联网实际使用的TCP/IP模型并不是对应了OSI的7层模型,而是大致对应五层模型
OSI | TCP/IP |
---|---|
应用层 | 应用层 |
表示层 | 应用层 |
会话层 | 应用层 |
传输层 | 传输层 |
网络层 | IP层 |
链路层 | 网络接口层 |
物理层 | 网络接口层 |
常用协议
IP协议
一种分组交换传输协议,不保证可靠传输
可以理解为:只负责发数据包,不保证顺序和正确性
TCP协议
一种建立在IP协议之上的协议,它是一种传输控制协议,他是面向连接的协议,支持可靠传输和双向通信
可以理解为:先建立连接,在传输数据,传输完再断开连接
TCP协议还允许双向通信,即通信双方可以同时发送和接收数据。
TCP协议也是使用最广泛的协议,许多高级的协议都是建立在TCP协议之上的,比如HTTP,SMTP等
UDP协议
是一种数据报文协议,它是一种无连接协议,不保证可靠传输,传输的数据通常是能容忍丢失的,比如语音视频等
标签:协议,12,Java,IP,编程,网络,TCP,DNS,IP地址 From: https://www.cnblogs.com/ZzTzZ/p/16845493.html