网络编程:
什么是网络编程:
网络通常指的是计算机中的互联网,是由多台计算机通过网线或其他媒介相互链接组成的
编写基于网络的应用程序的过程序称之为网络编程
为什么要学习网络编程:
我们已经知道计算机,由硬件 操作系统,应用程序组成,有了这三个元素,就可以在自己的电脑上运行一些应用程序了,比如玩玩纸牌,扫扫雷什么的
如果要想与其他计算机一起玩,就必须要让你的计算机和其他计算机能够互相传递数据
学习网络编程就是要学习利用网络来与另一台计算机相互传输数据, 开发出支持网络通讯的应用程序,这样即使足不出户也能尽知天下事
C/S架构
学习网络编程就是要通过网络来访问另一台计算的数据,这样必然需要至少两台计算机,一台计算机上放着要分享的数据和用于分享数据的程序,另一台计算机上运行访问数据的程序,
我们把提供数据的一方称之为服务器(Server),把访问数据的一方称为客户端(Client)
这就是C/S构架:
网络通讯的基本要素
1. 物理连接介质:
网线,光纤,无线电等。
2.通讯协议:
通讯协议是由发送方与接收方共同商定出的一套标准,约定中包括对数据格式,同步方式,传播速度,传送步骤,检纠错方式以及控制字符定义等问题作出统一规定
通信双方必须共同遵守,它也叫做链路控制规程
OSI七层模型
什么是OSI?
Open System Interconnection Reference Model,开放式系统互联通信参考模型,缩写为OSI,是由国际标准组织推出的,其实就是一大堆协议,OSI把整个通讯过程划分为七层,简称OSI七层模型
上图中最右边就是完整的七层模型,是最完整的通讯模型,虽然很详尽,但是整个通讯流程的复杂度较高,后期为了降低学习难度,将其进行了简化,于是又了中间的五层,和左边的四层
其中应用层,表示层和会话层都是属于应用程序层的,是一个整体,故将其合并为应用层,由此得到中间的五层,这是我们学习的重点!
应用层 传输层 网络层 数据链路层 物理层
为什么需要OSI:
OSI就是相当于计算机界的通用语言,只要按照OSI规定的标准来通讯,就能够与全世界任何一台所有计算机通讯
OSI五层工作原理解析
1. 物理层
物理层的由来,在通讯的基本要素一节已经讨论过了,两台原本相互独立的计算机,想要通讯,必须建立物理连接,连接的方式多种多样,包括电缆,光缆,无线电等;
2.数据链路层
1.以太网协议:
以太网协议(Ethernet)工作在数据链路层,其规定了电信号分组方式,以及一组电信号应该包含哪些内容
ethernet规定如下:
一组电信号构成一个数据包,叫做‘帧’
每一数据帧分成:报头head和数据data两部分
head包含:(固定18个字节)
发送者/源地址,6个字节
接收者/目标地址,6个字节
数据类型(标签+以太类型),6个字节
data包含:(最短46字节,最长1500字节)
数据包的具体内容
head长度+data长度=最短64字节,最长1518字节,超过最大限制就分片发送
2.mac地址:
head中包含的源和目标地址指的是什么地址呢?
ethernet规定接入internet的设备都必须具备网卡,发送端和接收端的地址便是指网卡的地址,即mac地址