网络编程之IP与端口

关与作者更多博客请访问云里云外开源社区

1、网络编程的三要素

1.1 IP地址

IP地址(Internet Protocol Address)是指互联网协议地址,有叫做网际协议地址。它来源于IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。

那么什么是IP协议呢?简单的说是一种为了计算机网络之间通信而遵守的规则。不同的厂家生产的网络系统和设备,它们在通信时发送的数据的基本单元的格式不同,因而需要一套统一的协议来规范传输数据的格式。

IP地址正是IP协议所规定的重要内容之一,协议给因特网上的每台计算机和其他设备规定了一个唯一地址,叫做“IP地址”。这样在网络通行时就可以准确找到自己需要通行的“对象”。可以将“IP地址”看做“家庭住址”,计算机通行就是“邮递员”,只有知道了准确的地址后才可以将信送到正确的人家。

IP地址分为IPV4IPV6

我们先看IPV4,它是一个32位的二进制数,通常被分为4个8位二进制数,又因为二进制数不便于记忆,因此使用“点分十进制”将四个8位二进制数表示为四个用’.'分割开的10进制数。例:点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)。

IP地址编码方式

最初设计互联网络时,为了便于寻址以及层次化构造网络,每个IP地址包括两个标识码(ID),即网络ID和主机ID。同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机(包括网络上工作站,服务器和路由器等)有一个主机ID与其对应。Internet委员会定义了5种IP地址类型以适合不同容量的网络,即A类~E类。

其中A、B、C3类(如下表格)由InternetNIC在全球范围内统一分配,D、E类为特殊地址。

类别最大网络数IP地址范围单个网段最大主机数私有IP地址范围
A126(2^7-2)1.0.0.1-126.255.255.2541677721410.0.0.0-10.255.255.255
B16384(2^14)128.0.0.0-191.255.255.25565534172.16.0.0-172.31.255.255
C2097152(2^21)192.0.0.0-223.255.255.255254192.168.0.0-192.168.255.255

由于篇幅限制,在这里只简要介绍A类地址的编码方式,其他几类地址思路类似。

A类IP地址:一个A类IP地址是指由第一段的8位网络地址和后3个8位的主机地址组成的。也可以说是由一字节的网络地址和三字节的主机地址组成。网络地址的最高位必须是0(二进制下的)。

A类的地址范围是1.0.0.1-126.255.255.254。可以看出A类网络最多126个,也就是27-2个【减2的原因由于网络地址全0的[IP地址](https://baike.baidu.com/item/IP地址)是保留地址意思为“本网络”,而网络号为127(即01111111)保留作为本机软件回路测试之用】;每个网络可以容纳的主机数为16777214个,也就是224-2个【这里减2的原因是主机地址全0表示“本主机”所连接到的单个网络地址,而全1表示“所有”,即该网络上所有主机】。

A类地址适用于具有大量主机(直接个人用户)而局域网络个数较少的大型网络。例如,IBM公司的网络。

可以看出IP地址类型的网络数和可容纳主机数是负相关的。

简单介绍IPV6,它是由八个16位地址段的十六进制值,一共128位。这里简单插入IPV6的冒分十六进制表示法

一、冒分十六进制表示法
  格式为X:X:X:X:X:X:X:X,其中每个X表示地址中的16b,以十六进制表示,例如:
  ABCD:EF01:2345:6789:ABCD:EF01:2345:6789
  这种表示法中,每个X的前导0是可以省略的,例如:
  2001:0DB8:0000:0023:0008:0800:200C:417A→ 2001:DB8:0:23:8:800:200C:417A

在上表中可以看到ip分为Public IP和Private IP,这种现象是因为IPV4所能表示IP太少了,不足以分给每一个PC一个IP。但是只有Public IP才能连接上网络。对于一些组织、学校、公司来说。可以共用一个IP连接公网

1.1.1百度搜索ip查询和命令行ipconfig查询不一致

ipconfig查出的是你本机的IP地址,也就是内网私有地址,仅在局域网使用,不能联通外网,百度查出的地址是上网的共有地址,也许并不是你主机的地址,而是电信或联通分给你的地址,用于连接互联网。

  • Public IP : 公共 IP ,经由 INTERNIC 所统一规划的 IP,有这种 IP 才可以连上 Internet ;

  • Private IP : 私有 IP 或保留 IP,不能直接连上 Internet 的 IP ,主要用于局域网络内的主机联机规划。

1.1.2整理上网流程

我们重新整理一下我们上网的路线,看下图,移动公司分给我们的ip是117.158.134.217,这是我们这一栋楼能连上网的公网Ip,那么如何让这一个ip使学校里面的所有人都能使用呢,我们开始重新划分局域网。上文中,我们知B类私有地址范围是:172.16.0.0~172.31.255.255,我们学校采取的就是这种划分方法,所以我的私网ip地址就是172.18.251.129.那么怎么连上网的呢,我们通过私网ip然后把我们的需求和要发送的数据发给路由器,然后路由器对接网络,再把数据发送给Internet.然后internet发送数据到我们学校的路由,然后路由在通过我的私网ip发送给我,这就是我们真实上网的流程。

1.2 端口号

前面说到通过IP地址“邮递员”能将“信件”送到正确的地址,但这里的地址是一个模糊的地址,只精确到一个“社区或者街道”,还需要更进一步的“门牌号”才能完成服务。这里的端口号就是“门牌号”。一台计算机上有很多应用程序,计算机如何区分或者如何找到对应的应用程序呢?就是通过端口号。

端口号范围在0-65535范围内,0-1024为系统使用或保留端口号。比如Oracle端口号1521,Mysql端口号3306,SQLServer是1433。

查看端口号

在Windows系统命令行中,以管理员身份运行

#系统端口状态,可以列出系统正在开放的端口号及其状态
netstat
#数字格式显示地址和端口信息
netstat -n

Linux中

#查看端口
netstat -nlpt(所有端口)
#查看某一端口在防火墙中是否启用(结果是no,表示没有启用)
firewall-cmd --query-port=8088/tcp
#如果想关闭某个端口可使用--remove命令来进行关闭,同样如果带有-permanent参数是永久关闭,不带此参数的话只能是暂时关闭,但注意一点关闭端口需要重启才生效
#开启某个端口
#开端口命令:
firewall-cmd --zone=public --add-port=80/tcp --permanent
#查看开启的所有端口:
firewall-cmd --list-ports

1.3通信协议

通信协议是网络通信所使用的规则,又称通信规程,是指通信双方对数据传送控制的一种约定。约定中包括对数据格式,同步方式,传送速度,传送步骤,检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守,它也叫做链路控制规程

这里介绍TCP/IP。 TCP是Transmission Control Protocol,译为传输控制通讯协议。IP是Internet Protocol,译为国际互联网通行协议,简称网际协议

TCP/IP实际上是一组协议,它包括上百个各种功能的协议,如:远程登录、文件传输和电子邮件等,而TCP协议和IP协议是保证数据完整传输的两个基本的重要协议。通常说TCP/IP是Internet协议族,而不单单是TCP和IP。包括TCP、IP、UDP、ICMP、RIP、TELNETFTP、SMTP、ARP、TFTP等许多协议,这些协议一起称为TCP/IP协议。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值