【Android 网络协议 一】TCP/IP网络模型


一、网络基础知识
1、协议:
     (1)概念:计算机与计算机之间通过网络实现通信时 事先达成的一种“ 约定”。
     (2)协议就是人与人对话使用的语言。
2、分组交换:
     (1)概念:将 大数据分割为一个个叫作 的较小单位进行传输的方法。
3、协议分层:
     (1)每个分层都接收由它下一层所提供的 特定服务,并为上一层提供 特定服务。上下层之间交互所遵循的约定叫作“ 接口”,同一层之间交互所遵循的约定叫作“ 协议”。
4、网络模型通信举例
     用户A要给用户B发送一封内容为“早上好”的邮件。
     (1)邮件软件从功能上来讲可以 分为两大类:一部分是 与通信相关的,另一部分是 与通信无关的。
     (2)从用户输完内容点击“发送”的那一刻开始,就进入了 应用层协议的处理。
     (3)传输层负责建立连接和断开连接。传输层为确保所传输的数据到达目标地址,会在通信两端的计算机之间 进行确认,如果数据 没有到达,它会负责进行 重发
5、传输方式的分类
     (1)面向连接的传输方
     (2)面向无连接的传输方式 
6、WWW协议
     (1)http是超文本(不是普通的文本文件,文件中包含文字,链接,flash等)传输协议,属于应用层。
     (2)html属于表示层协议。
7、发送数据包
     (1)应用程序处理:编码把数据发给下一层的TCP。
     (2)TCP层处理:在应用层数据的前端 附加一个TCP首部。TCP首部包括源端口号和目标端口号、序号、校验和。
     (3)IP层处理:加一个 IP首部。 

接下来,本文将从逐层讲解TCP/IP模型:物理层、链接层、网络层、传输层、应用层。首先来看下面这张图:

    

    互联网主要是通过分层来实现的,每一层都定义它自己的功能,它就像一个大楼一样,每一层都需要底层来支持。我们开发人员能接触到的都是最上层,可如果想深入理解互联网,必须从底层开始研究。

    最底层是物理层,它通过物理的手段把计算机连接起来。最上方的应用层是最接近我们用户的。接下来我们一层一层来看。


二、物理层

    

    其实物理层特别好理解,当我们想要把两台电脑连接起来时,我们第一件事要做什么?我们要做的就是把两台电脑用线连接起来。这个线可以是什么线?光缆、电缆、双绞线、无线电波等等。。这条线就是物理层,就是通过物理手段把两台电脑连接起来


三、链接层

1、数据链路层定义了 通过通信媒介互连的设备之间传输的规范。MAC地址3-24位表示厂商识别码,25-48位表示厂商内部每个网卡的识别码。MAC地址不一定是唯一的。实际上,即使MAC地址相同,只要不是同属一个数据链路就不会出现问题。无线通信通常使用电磁波、红外线、激光灯方式进行传播数据。 
2、从 通信介质的使用方法上来看,网络可分为 共享介质型非共享介质型
(1)共享介质型(设备之间使用同一个载波信道进行发送和接收)
    (a)争用方式:先到先得,会产生冲突。
    (b)令牌传递:每个站都有平等机会获得令牌。
(2)非共享介质型:

3、链接层的协议

        以太网规定了电信号的分组方式。下图就是以太网规定的数据包,它也可以叫做帧,帧又分为head和data。head里包含了数据包的说明项,比如发送者和接收者的地址。而data里包含了数据包的具体内容。

        

4、mac地址

        以太网规定每一个连接入网的设备必须有一个网卡的接口,数据包必须是从一块网卡传送到另一块网卡。mac地址就是网卡的地址。

    

5、广播

        如下图,1号计算机要向2号计算机发一个数据包,同一个子网络下的2号、3号、4号、5号计算机都会收到广播的包。

        它们会读取广播包的head头,然后读取head头里指明的接收方的mac地址,然后和计算机自身的mac地址相比对。

        如果和自身mac地址相匹配,就接收这个数据包,做进一步的处理。如果不匹配,就丢弃这个包。

        以上过程,就是广播

    


五、网络层

    从理论上讲,依靠mac地址,可以从上海的网卡找到美国的网卡,想找到世界上的任何一个网卡都可以找得到,这在技术上是可以实现的。可是这有一个非常非常大的问题!!以太网是通过广播的方式发送数据包,这种效率是非常低的。而且只能局限在较小型的子网络上,也就是两台计算机不是一个子网络上,广播是传不过去的。互联网是无数个子网络组成的巨型网络,仅仅通过mac地址寻址,从上海找到美国几乎是不可能的。所以,必须找到一种方式区分哪些mac地址属于同一子网络,哪些mac地址不属于同一子网络。这样就引出了网络层。

1、作用

        区分哪些mac地址属于同一子网络。网络层出现以后,每个网卡都有了两个地址:一个是IP地址,一个是mac地址。IP地址和mac地址是没有任何关联的,IP地址是为了找到子网络,找到了子网络再通过mac地址找到具体网卡。在复杂的网络环境中将数据包发给最终的目标地址。在TCP/IP通信中所有主机或路由器必须设定自己的IP地址。

2、IP协议

        规定网络地址的协议。一个数据包之所以能够成功地到达目标地址,全靠路由控制

3、IP数据包

        根据IP协议发送的数据。

        

4、arp协议

        如何通过IP地址找到mac地址呢?

        核心原理:ARP协议是发出一个数据包,它所在的子网络每一台主机都会收到这个数据包。收到这个数据包后,跟自身IP地址进行比对,如果匹配就报告自己的mac地址。

        这与广播有什么区别呢?

5、IP层与数据链路层的区别:
    (1)数据链路层提供直连的两个设备之间的通信功能;
    (2)IP层负责在没有直连的两个网络之间进行通信传输。
6、路由器或主机在转发数据包时 只指定下一个路由器或主机
7、IP属于 无连接型:在发包之前不需要建立与对端目标地址之间的连接,因为面向连接的情况下,需要事先建立连接。
8、IP地址=网络地址+主机地址
(1)A类地址:以0开头,前一块为网络地址。
(2)B类地址:以01开头,前两块为网络地址。
(3)C类地址:以10开头,前三块为网络地址。
(4)D类地址:以11开头,四块都是网络地址。
9、子网掩码:
1、 子网掩码可以随便设置吗
2、子网掩码必须是IP地址首位开始连续的1。
10、CIDR:
由于A类地址架设的主机过多(128),C类架设的主机过少(254),一般都申请B类的,导致B类不够,所以出现了采用任意长度区分网络地址和主机地址的技术,叫做CIDR。
11、全局IP和私有IP:
没有连入互联网的主机,只要保证在这个网络内地址唯一。在私有地址范围的网络是私有IP。私有IP最早没有计划连入互联网,但NAT技术实现了私有IP主机和全局IP主机的通信。
12、全局地址谁来决定?
在世界范围内,全局地址由ICANN管理。 


六、IP协议相关技术
1、网络通信的目标是让最终主机收到数据包。
2、由于日常上网我们很少直接输入IP地址,需要应用层的DNS。
3、什么是DNS系统?有效管理主机名和IP地址之间对应关系的系统。
4、ARP技术:
(1)要达到目标主机,需要通过 广播发送一个A RP请求包,由于广播可以让同一个链路上的所有主机接收,如果哪一个主机发现目标ip与自己的ip一致,就把自己的mac地址塞到ARP响应包返回给源主机。
5、DHCP技术:
(1)为了实现 自动设置IP地址,统一管理IP地址分配。
(2)只要主机接入网络,就自动分配一个IP。
6、NAT技术:
将私有地址转为全局地址。 


七、传输层

1、TCP是面向连接的、可靠的 流协议。流是指不间断的数据结构,你可以把它想象成 排水管道中的水流。
2、TCP有 顺序控制重发控制等机制。
3、数据链路层的地址叫mac,网络层的地址叫IP,传输层的地址叫端口号。端口号是用来识别 同一台主机中进行通信的 不同应用程序。传输层就是利用端口号识别主机中正在进行通信的应用程序。 传输层就是从主机到应用程序的通信。 

4、同一台主机中许多程序都会用到网络,比如,我可以一遍上网,一遍qq聊天。这时候当一个数据包从网络上发来的时候,我怎么知道它是网页的内容,还是qq聊天的内容呢?也就是说,我们还需要一个参数来指明我们网络上发来的数据是供哪个应用程序使用的呢?而这个参数就是端口号。

5、功能:

        传输层主要是建立一个端口到端口的通信,而网络层主要是建立主机到主机的通信。

    


八、应用层

应用层,规定应用程序的数据格式。当一个应用程序收到传输层发来的数据后,必须要对数据进行解读。

1、远程登录
2、文件传输
3、电子邮件
4、WWW 


九、最后

以上就是我对TCP/IP网络模型相关知识的总结,如有任何疑问可留言提问,博主每天都会查看。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值