网络编程(一)计算机网络基础

一、计算机网络按照其规模划分
计算机网络基础.png

上述网络都是私有网络,随着这种私有网络的逐渐增多,人们开始尝试将多个私有网络连接在一起,组成更大的私有网络,这种网络又逐渐发展演变成为互联网为公众所使用。

连接到互联网后,计算机之间的通信已不再局限于公司或部门内部,而是能够与互联网中的任何一台计算机进行通信。互联网作为一门新兴技术,极大地丰富了当时以电话、邮政以及传真为主的通信手段,逐渐被人们所接受。

二、网络发展的七个阶段
网络发展的七个阶段

三、协议

在计算机网络与信息通信领域里,人们经常提及“协议”一词。互联网中常用的具有代表性的协议有IP、TCP、HTTP等。

各种网络体系及协议

协议就是计算机与计算机之间通过网络实现通信时事先达成的一种“约定”。这种“约定”使那些由不同厂商的设备、不同的CPU以及不同的操作系统组成的计算机之间,只要遵循相同的协议就能够实现通信。反之,如果所使用的协议不同,就无法实现通信。

四、分组交换协议

分组交换是指将大数据分割为一个个叫做包(Packet)的较小单位进行传输的方法。

分组通信

计算机通信会在每一个分组中附加上源主机地址和目标主机地址送给通信线路。这些发送端地址、接收端地址以及分组序号写入的部分称为“报文首部”

一个较大的数据被分为多个分组时,为了标明是原始数据中的哪一部分,就有必要将分组的序号写入包中。接收端会根据这个序号,再将每个分组按照序号重新装配为原始数据。

通信协议中,通常会规定报文首部应该写入哪些信息、应该如何处理这些信息。相互通信的每一台计算机则根据协议构造报文首部、读取首部内容等。为了双方能正确通信,分组的发送方和接收方有必要对报文首部和内容保持一致的定义和解释。

五、OSI参考模型

为了解决上述问题,ISO(International Organization forStandards,国际标准化组织。) 制定了一个国际标准OSI(Open Systems Interconnection,开放式通信系统互联参考模型。) ,对通信系统进行了标准化。现在,OSI所定义的协议虽然并没有得到普及,但是在OSI协议设计之初作为其指导方针的OSI参考模型却常被用于网络协议的制定当中。

OSI七层网络模型.png

在7层OSI模型中,如何模块化通信传输?

发送方从第7层、第6层到第1层由上至下按照顺序传输数据,而接收端则从第1层、第2层到第7层由下至上向每个上一级分层传输数据。每个分层上,在处理由上一层传过来的数据时可以附上当前分层的协议所必须的“首部”信息。然后接收端对收到的数据进行数据“首部”与“内容”的分离,再转发给上一分层,并最终将发送端的数据恢复为原状。

通信与七个分层

六、地址

通信传输中,发送端和接收端可以被视为通信主体。它们都能由一个所谓“地址”的信息加以标识出来。

以TCP/IP为例,在通信中使用MAC地址、IP地址、端口号等信息作为地址标识。甚至在应用层中,可以将电子邮件地址作为网络通信的地址。

地址的两个特性:唯一性层次性
1)唯一性:
一个地址必须明确地表示一个主体对象。在同一个通信网络中不允许有两个相同地址的通信主体存在。

2)层次性:
当地址的总数越来越多时,如何高效地从中找出通信的目标地址将成为一个重要的问题。为此人们发现地址除了具有唯一性还需要具有层次性。

IP地址由网络号和主机号两部分组成。即使通信主体的IP地址不同,若主机号不同,网络号
相同,说明它们处于同一个网段。

IP地址:4段十进制,共32位二进制,如:192.168.1.1 二进制就是:11000000|10101000|00000001|00000001

子网掩码可以看出有多少位是网络号,有多少位是主机号: 255.255.255.0 二进制是:11111111 11111111 11111111 00000000

网络号24位,即全是1 主机号8位,即全是0

129.168.1.1 /24 这个、24就是告诉我们网络号是24位,也就相当于告诉我们了子网掩码是:11111111 11111111 11111111 00000000即:255.255.255.0

172.16.10.33/27 中的/27也就是说子网掩码是255.255.255.224 即27个全1 ,11111111 11111111 11111111 11100000

七、网络构成(计算机连接网络)

主要设备
1)网卡

任何一台计算机连接网络时,必须要使用网卡,全称为网络接口卡(NIC)。
网络接口卡:集成了连接局域网功能的设备。有时会被集成到计算机的主板中,有时也可以单独插入扩展槽使用,有时也被叫做网络适配器、网卡、LAN卡。

2)中继器

中继器(Repeater)是在OSI模型的第1层——物理层面上延长网络的设备。由电缆传过来的电信号或光信号经由中继器的波形调整和放大再传给另一个电缆。

3)网桥/2层交换机

网桥是在OSI模型的第2层——数据链路层面上连接两个网络的设备。

它能够识别数据链路层中的数据帧(与分组数据意思大致相同,但是在数据链路层中通常习惯称为帧。),并将这些数据帧临时存储于内存,再重新生成信号作为一个全新的帧转发给相连的另一个网段,由于能够存储这些数据帧,网桥能够连接传输速率完全不同的数据链路,并且不限制连接网段的个数

数据链路的数据帧中有一个数据位叫做FCS(用CRC(CyclicRedundancy Check,循环冗余校验码)方式校验数据帧中的位。有时由于噪音导致通信传输当中数据信号越来越弱,而这种CRC正是用来检查数据帧是否因此而受到破坏的。) ,用以校验数据是否正确送达目的地。网桥通过检查这个域中的值,将那些损坏的数据丢弃,从而避免发送给其他的网段。此外,网桥还能通过地址自学机制过滤功能控制网络流量(网络上传输的数据报文的数量。) 。

地址自学机制:这里所说的地址是指MAC地址、硬件地址、物理地址以及适配器地址,也就是网络上针对NIC分配的具体地址。网桥会根据地址自学机制来判断是否需要转发数据帧。

这类功能是OSI参考模型的第2层(数据链路层)所具有的功能。为此,有时也把网桥称作2层交换机(L2交换机)

有些网桥能够判断是否将数据报文转发给相邻的网段,这种网桥被称作自学式网桥。这类网桥会记住曾经通过自己转发的所有数据帧的MAC地址,并保存到自己里的内存表中。由此,可以判断哪个网段中包含持有哪类MAC地址的设备

4)路由器/3层交换机

路由器是在OSI模型的第3层——网络层面上连接两个网络、并对分组报文进行转发的设备。网桥是根据物理地址(MAC地址)进行处理,而路由器/3层交换机则是根据IP地址进行处理的。由此,TCP/IP中网络层的地址就成为了IP地址

5)4~7层交换机

4~7层交换机负责处理OSI模型中从传输层至应用层的数据。如果用TCP/IP分层模型来表述 ,4~7层交换机就是以TCP等协议的传输层及其上面的应用层为基础,分析收发数据,并对其进行特定的处理

可以作为负载均衡器带宽控制广域网加速器特殊应用访问加速以及防火墙(控制非法访问)

6)网关

网关是OSI参考模型中负责将从传输层到应用层的数据进行转换和转发的设备。它与4~7层交换机一样都是处理传输层及以上的数据,但是网关不仅转发数据还负责对数据进行转换,它通常会使用一个表示层或应用层网关,在两个不能进行直接通信的协议之间进行翻译,最终实现两者之间的通信。

典型的例子就是互联网邮件手机邮件之间的转换服务。互联网与手机之间设置了一道网关。网关负责读取完各种不同的协议后,对它们逐一进行合理的转换,再将相应的数据转发出去。

此外,在使用WWW(World Wide Web,万维网)时,为了控制网络流量以及出于安全的考虑,有时会使用代理服务器(ProxyServer)。这种代理服务器也是网关的一种,称为应用网关有了代理服务器,客户端与服务器之间无需在网络层上直接通信,而是从传输层到应用层对数据和访问进行各种控制和处理防火墙就是一款通过网关通信,针对不同应用提高安全性的产品。

八、现代网络组成

在计算机网络中,有着类似高速公路的部分,他们被称为骨干核心网络。通常会使用高速路由器进行数据的快速传输。

网络中相似于高速公路出入口的部分被称为边缘网络

连接边缘网络的部分被称为接入层汇聚层。骨干网专注于业务快速传输和稳定性。

边缘网络的常用设备多为2层交换机3层交换机

互联网网络

文章内容摘自:图解TCP/IP(第五版)

推荐阅读更多精彩内容

  • 从本篇开始,真正进入我们的Android网络编程学习之旅。 概念 计算机网络是利用通信设备和线路将地理位置不同的、...
    yeungeek阅读 108评论 0 3
  • 一、什么是TCP/IP 网络和协议 1. TCP/IP是一类协议系统,它是一套支持网络通信的协议集合。网络是计算机...
    karlon的马甲阅读 5,405评论 1 22
  • 协议1.1 什么是网络协议 简单来说,网络协议就相当于任意两台计算机之间指定达成的一种“约定”,这个“约定”规定了...
    Linux丶晨星阅读 141评论 0 3
  • 内容来自网络资料整理 1. 电路交换与分组交换的区别? 优劣对比。 电路交换是以电路连接为目的的交换方式,通信之前...
    Tycc阅读 592评论 0 4
  • 夜莺2517阅读 2,928评论 0 6