网络编程 TCP/IP
互联网的本质
打电话的话:首先要有介质连接,然后要锁定对方号码,再次要统一通讯方式
类比计算机:Internet网连接,知道对方的计算机位置,统一标准
二 osi七层协议
-
应用层
- 应用层
- 表示层
- 会话层
-
传输层
-
网络层
-
网络接口层
- 数据链路层
- 物理层
2.1物理层
计算机之间必须组网
物理层功能:基于电器特性发送高低电压(电信号), 高电压对应数字1,低电压对应0
2.2数据链路层
数据链路层由来:单纯的电信号0和1没有任何意义,必须规定电信号多少位一组,每组什么意思
数据链路层的功能:定义了电信号的分组方式
由于当时每家公司都有自己的分组标准,导致通讯困难,后来统一为ethernet
ethernet规定
- 一组电信号构成一个数据包,叫做‘帧’
- 每一数据帧分成:报头head和数据data两部分
header包含: (固定18个字节)
发送者/源地址 , 6个字节
接受者/源地址, 6个字节
数据类型, 6个字节
data包含:最短46个字节, 最长1500个字节
数据包的具体内容
所以header长度+data长度=最短64字节,最长1518字节
mac地址:
head中包含的源和目标地址由来:ethernet规定接入internet的设备都必须具备网卡,发送端和接收端的地址便是指网卡的地址,即mac地址
mac地址:每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号)
*广播:*
有了mac地址,同一网络内的两台主机就可以通信了(一台主机通过arp协议获取另外一台主机的mac地址)
ethernet采用最原始的方式,广播的方式进行通信,即计算机通信基本靠吼
2.3 网络层
由来:有了ethernet,mac,以及广播的发送方式,世界上的计算机可以彼此通信了,问题是一个人发全世界都能接受到.
上图结论:必须找出一种方法来区分哪些计算机属于同一广播域,哪些不是,如果是就采用广播的方式发送,如果不是,
就采用路由的方式(向不同广播域/子网分发数据包),mac地址是无法区分的,它只跟厂商有关
网络层功能:引入一套新的地址用来区分不同的广播域/子网,这套地址即网络地址
IP协议:
- 规定网络地址的协议叫ip协议,它定义的地址称之为ip地址,广泛采用的v4版本即ipv4,它规定网络地址由32位2进制表示
- 范围0.0.0.0-255.255.255.255
- 一个ip地址通常写成四段十进制数,例:172.16.10.1
*ip地址分成两部分*
- 网络部分:标识子网
- 主机部分:标识主机
子网掩码
已知IP地址172.16.10.1和172.16.10.2的子网掩码都是255.255.255.0,请问它们是否在同一个子网络?两者与子网掩码分别进行AND运算,
172.16.10.1:10101100.00010000.00001010.000000001
255255.255.255.0:11111111.11111111.11111111.00000000
AND运算得网络地址结果:10101100.00010000.00001010.000000001->172.16.10.0
172.16.10.2:10101100.00010000.00001010.000000010
255255.255.255.0:11111111.11111111.11111111.00000000
AND运算得网络地址结果:10101100.00010000.00001010.000000001->172.16.10.0
结果都是172.16.10.0,因此它们在同一个子网络。
总结一下,IP协议的作用主要有两个,一个是为每一台计算机分配IP地址,另一个是确定哪些地址在同一个子网络。
ip数据包
ip数据包也分为head和data部分,无须为ip包定义单独的栏位,直接放入以太网包的data部分
head:长度为20到60字节
data:最长为65,515字节。
而以太网数据包的”数据”部分,最长只有1500字节。因此,如果IP数据包超过了1500字节,它就需要分割成几个以太网数据包,分开发送了。
ARP协议
arp协议由来:计算机通信基本靠吼,即广播的方式,所有上层的包到最后都要封装上以太网头,然后通过以太网协议发送,在谈及以太网协议时候,我门了解到
通信是基于mac的广播方式实现,计算机在发包时,获取自身的mac是容易的,如何获取目标主机的mac,就需要通过arp协议
arp协议功能:广播的方式发送数据包,获取目标主机的mac地址
协议工作方式:每台主机ip都是已知的
例如:主机172.16.10.10/24访问172.16.10.11/24
一:首先通过ip地址和子网掩码区分出自己所处的子网
2.4 传输层
传输层的由来:网络层的ip帮我们区分子网,以太网层的mac帮我们找到主机,然后大家使用的都是应用程序,你的电脑上可能同时开启qq,暴风影音,等多个应用程序,
那么我们通过ip和mac找到了一台特定的主机,如何标识这台主机上的应用程序,答案就是端口,端口即应用程序与网卡关联的编号。
传输层功能:建立端口到端口的通信
补充:端口范围0-65535,0-1023为系统占用端口
思考
1.操作系统本质上是什么?
2.socket又叫什么?可以用来干什么?
3.CS,BS架构分别是什么?两者的优缺点
4.互联网协议按照功能不同分为
5.光纤,双绞线属于哪一层?由来是什么?功能是什么?在往上是哪一层?由来是什么?功能是什么?
6.这时出来了什么标准?标准分为哪两个部分?
前一部分中的mac地址对应需要哪张卡?
7.ethernet采用什么方式进行通信?只有范围内的接受端能接受到吗?
8.引入一套新的地址用来区分不同的广播域/子网,这一套新的地址是什么?
9.ip数据包放在哪?data的最大长度为多少字节?以太包中的数据最大长度为多少?超过会如何?形式和什么类似?
10.ARP协议由来?功能是什么?协议工作方式?
11.传输层的由来?功能?端口的范围是多少?其中系统占用端口为?
11.由来: 网络层的ip帮我们区分子网,数据链路层的mac帮我找到对应的主机.我们使用的应用程序需要通过端口来标识.端口即应用程序与网卡关联的编号
功能: 建立端口到端口的通信
范围:端口范围 0-65535, 系统占用端口为0-1024
答案:
1.操作系统本质上是一个负责协调,管理和控制计算机硬件资源和软件资源的控制程序
2.套接字,可以用来进行网络通信.比如传输文件,传送消息
3.CS,客户端-服务器:
优点:界面和操作非常丰富,满足客户的个性化要求,安全系很容易保证,响应速度较快
缺点:需要开发客户端和服务器两套程序,开发成本维护成本较高,兼容性差,用户群固定
BS架构 浏览器-服务器
优点: 分布性强,客户端几乎无需维护,开发简单,共享性强,维护简单方便
缺点:个性化低, 安全性以及响应速度需要花费巨大的设计成本
4.osi七层或tcp/ip五层或tcp/ip四层
5.物理层,计算机必须组网,利用电气特性发出高低电压(电信号),高电压对应数字1,低电压对应数字0
数据链路层,单纯的电信号0和1没有意义,必须将电信号进行分组.
6.这时创建了以太网协议.即每一个组电信号对应一个数据包即"帧",每一个数据帧包含报头header和data两部分,header中对应一张唯一的网卡.
7.广播的方式.不是,发送端pc1一广播的方式发送以外网包给范围内的主机,各个pc发现接受源的地址与自己的地址不符,则会丢弃
8.IP协议产生的IP地址和子网掩码
9.放在ethernet的数据帧中.65515字节.1500字节.超过的话ip数据包就需要被分割成几个以太网数据包分开发送了.ethernet数据帧类似.
由来: 计算机的通信基本靠吼(广播的方式),所有上层的数据包到最后都需要封装上以太网头.在谈及以太网协议时,我们了解到通信都是基于mac的广播方式实现,计算机在发包时,获取自身的mac地址很容易,但是要获取目标主机的mac地址很难.
功能:广播的方式发送数据包,获取目标主机的mac地址.
工作方式;1.通过已知条件ip地址和子网掩区分出自己所处的子网.2.创建一个数据包包括(源mac,目标mac,源ip,目标ip,数据部分等信息)3.以广播的方式在发送端的内网中传输,所在的主机拆开包后发现目标ip为自己则响应.
posted on 2020-09-03 20:56 sunnywillow 阅读(167) 评论(0) 编辑 收藏 举报