热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

(一)网络网络是一种辅助双方或者多方能够连接在一起的工具。使用网络就是为了联通多⽅然后进⾏通信⽤的,即把数据从⼀⽅传递给另外⼀⽅;前⾯学习编写的程序都是单机的,即不能和其他电脑上的程序

(一)网络

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

如下图:

 

(二)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”。

 


推荐阅读
  • c# java socketn 字节流_C#Socket编程详解(一)TCP与UDP简介
    一、TCP与UDP(转载)1、TCP1.1定义TCP(TransmissionControlProtocol)传输控制协议。是一种可靠的、面向连接的协议(eg:打电话)、传输效率低 ... [详细]
  • 三小时掌握计算机网络基础(通俗易懂)
    目录1.网络层次划分2.OSI七层网络模型3.IP地址4.子网掩码及网络划分5.ARPRARP协议6.路由选择协议7.TCPIP协议8.UDP协议 9.DNS协议 ... [详细]
  • 使用Packet Tracer对不同网段组网模拟
    @[toc]1.不同网段通信处于同于一个网段的电脑通过集线器或者交换机可以实现互相通信,处于不同网段的电脑就需要通过路由器来实现,这里可以通过Cisco的PacketTracer软 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文详细介绍了在Linux虚拟化部署中进行VLAN配置的方法。首先要确认Linux系统内核是否已经支持VLAN功能,然后配置物理网卡、子网卡和虚拟VLAN网卡的关系。接着介绍了在Linux配置VLAN Trunk的步骤,包括将物理网卡添加到VLAN、检查添加的VLAN虚拟网卡信息以及重启网络服务等。最后,通过验证连通性来确认配置是否成功。 ... [详细]
  • 本人新手,用Unity3D想做一个简单的赛车游戏,现在的问题是转弯的时候很容易出现翻车的情况,求解决思路比如说你的中心是在(0,0,0),你把他设置成(0,-1.0,0)之类的就可 ... [详细]
  • php网站设计实验报告,php网站开发实训报告
    本文目录一览:1、php动态网站设计的关键技术有哪些软件,及搭建步骤需要哪些页面,分别完成 ... [详细]
  • 实例详解ISA防火墙策略元素
    我们在前面的工作中已经实现了ISA2006的代理服务器功能,接下来我们要实现ISA的访问控制功能。很多公司都有控制员工访问外网的需求,例如有的公司不允许 ... [详细]
  • 点击上方[全栈开发者社区]→右上角[]→[设为星标⭐]前言年前准备换工作,总结了一波面试最频繁的面试问题跟大家交流。此文章是关于浏览器的常见问题, ... [详细]
  • TCP/IP详解 卷1 第一章概述
    第一章概述1.2分层网络编程通常分不同层次进行开发,每一层负责不同的通信功能。一个协议族比如TCPIP,通常是一组不同层次上多个协议的组合。一般可以认为 ... [详细]
  • OSI七层模型、TCP/IP五层模型
    OSI网络互连的七层框架:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层;应用层OSI参考模型中最靠近用户的一层,是为计算机用户提供应用接口,为用户直接提供各种网 ... [详细]
  • 分享西西弗斯自动求职系统【PHP】
    后端开发|php教程后端开发-php教程做这个系统的背景是前段时间帮女朋友找工作,大家也许都有过这样的感受,发出一份份简历都石沉大海,为什么呢?经过测试,我发现是因为邮件的阅读率并 ... [详细]
  • 【重识云原生】第四章云网络4.8.3.2节——Open vSwitch工作原理详解
    2OpenvSwitch架构2.1OVS整体架构ovs-vswitchd:守护程序,实现交换功能,和Linux内核兼容模块一起,实现基于流的交换flow-basedswitchin ... [详细]
  • GNS3单臂路由实验
    小白菜鸟必看-GNS3单臂路由实验教程(图文并茂)一.实验环境实验环境:GNS3,C269路由器二.实验图实验图如图所示。但是有以下几点要注意! ... [详细]
author-avatar
手机用户2502887831
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有