网络编程 TCP/IP

互联网的本质

打电话的话:首先要有介质连接,然后要锁定对方号码,再次要统一通讯方式

类比计算机:Internet网连接,知道对方的计算机位置,统一标准

二 osi七层协议

  1. 应用层

    • 应用层
    • 表示层
    • 会话层
  2. 传输层

  3. 网络层

  4. 网络接口层

    • 数据链路层
    • 物理层

image-20200903160836505

2.1物理层

计算机之间必须组网

物理层功能:基于电器特性发送高低电压(电信号), 高电压对应数字1,低电压对应0

image-20200903161255906

2.2数据链路层

数据链路层由来:单纯的电信号0和1没有任何意义,必须规定电信号多少位一组,每组什么意思

数据链路层的功能:定义了电信号的分组方式

由于当时每家公司都有自己的分组标准,导致通讯困难,后来统一为ethernet

ethernet规定

  • 一组电信号构成一个数据包,叫做‘帧’
  • 每一数据帧分成:报头head和数据data两部分

image-20200903161900270

header包含: (固定18个字节)

​ 发送者/源地址 , 6个字节

​ 接受者/源地址, 6个字节

​ 数据类型, 6个字节

data包含:最短46个字节, 最长1500个字节

​ 数据包的具体内容

所以header长度+data长度=最短64字节,最长1518字节

mac地址:

head中包含的源和目标地址由来:ethernet规定接入internet的设备都必须具备网卡,发送端和接收端的地址便是指网卡的地址,即mac地址

mac地址:每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号)

image-20200903165635920

*广播:*

有了mac地址,同一网络内的两台主机就可以通信了(一台主机通过arp协议获取另外一台主机的mac地址)

ethernet采用最原始的方式,广播的方式进行通信,即计算机通信基本靠吼

image-20200903165942477

2.3 网络层

由来:有了ethernet,mac,以及广播的发送方式,世界上的计算机可以彼此通信了,问题是一个人发全世界都能接受到.

image-20200903171003002

上图结论:必须找出一种方法来区分哪些计算机属于同一广播域,哪些不是,如果是就采用广播的方式发送,如果不是,

就采用路由的方式(向不同广播域/子网分发数据包),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字节,它就需要分割成几个以太网数据包,分开发送了。

image-20200903195849395

ARP协议

arp协议由来:计算机通信基本靠吼,即广播的方式,所有上层的包到最后都要封装上以太网头,然后通过以太网协议发送,在谈及以太网协议时候,我门了解到

通信是基于mac的广播方式实现,计算机在发包时,获取自身的mac是容易的,如何获取目标主机的mac,就需要通过arp协议

arp协议功能:广播的方式发送数据包,获取目标主机的mac地址

协议工作方式:每台主机ip都是已知的

例如:主机172.16.10.10/24访问172.16.10.11/24

一:首先通过ip地址和子网掩码区分出自己所处的子网

image-20200903195907216

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编辑  收藏  举报