网络编程基础

为了把计算机接入互联网,就必须要使用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.2

Mask = 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协议

是一种数据报文协议,它是一种无连接协议,不保证可靠传输,传输的数据通常是能容忍丢失的,比如语音视频等

原文地址:http://www.cnblogs.com/ZzTzZ/p/16845493.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性