三、tcp、ip协议详细
1、 什么是 TCP/IP?
TCP/IP 是一类协议系统,它是用于网络通信的一套协议集合.
传统上来说 TCP/IP 被认为是一个四层协议
1) 网络接口层:
主要是指物理层次的一些接口,比如电缆等.
2) 网络层:
提供独立于硬件的逻辑寻址,实现物理地址与逻辑地址的转换.
在 TCP / IP 协议族中,网络层协议包括 IP 协议(网际协议),ICMP 协议( Internet 互联网控制报文协议),以及 IGMP 协议( Internet 组管理协议).
3) 传输层:
为网络提供了流量控制,错误控制和确认服务.
在 TCP / IP 协议族中有两个互不相同的传输协议: TCP(传输控制协议)和 UDP(用户数据报协议).
4) 应用层:
为网络排错,文件传输,远程控制和 Internet 操作提供具体的应用程序
2、 数据包
在 TCP / IP 协议中数据先由上往下将数据装包,然后由下往上拆包
在装包的时候,每一层都会增加一些信息用于传输,这部分信息就叫报头,当上层的数据到达本层的时候,会将数据加上本层的报头打包在一起,继续往下传递.
在拆包的时候,每一层将本层需要的报头读取后,就将剩下的数据往上传.
这个过程有点像俄罗斯套娃,所以有时候人们也会用俄罗斯套娃来形容这个过程.
3、 网络接口层
这一块主要主要涉及到一些物理传输,比如以太网,无线局域网.这里就不做详细的介绍了
4 、网络层
前面有提到,网络层主要就是做物理地址与逻辑地址之间的转换.
目前市场上应用的最多的是 32 位二进制的 IPv4 ,因为 IPv4 的地址已经不够用了,所以 128 位二进制的 IPv6 应用越来越广泛了(但是下面的介绍都是基于 IPv4 进行的)
1) IP:
TCP/IP 协议网络上的每一个网络适配器都有一个唯一的 IP 地址.
IP 地址是一个 32 位的地址,这个地址通常分成 4 端,每 8 个二进制为一段,但是为了方便阅读,通常会将每段都转换为十进制来显示,比如大家非常熟悉的 192.168.0.1
IP 地址分为两个部分:
l 网络 ID
l 主机 ID
但是具体哪部分属于网络 ID,哪些属于主机 ID 并没有规定.
因为有些网络是需要很多主机的,这样的话代表主机 ID 的部分就要更多,但是有些网络需要的主机很少,这样主机 ID 的部分就应该少一些.
绝大部分 IP 地址属于以下几类:
l A 类地址:IP 地址的前 8 位代表网络 ID ,后 24 位代表主机 ID。
l B 类地址:IP 地址的前 16 位代表网络 ID ,后 16 位代表主机 ID。
l C 类地址:IP 地址的前 24 位代表网络 ID ,后 8 位代表主机 ID。
这里能够很明显的看出 A 类地址能够提供出的网络 ID 较少,但是每个网络可以拥有非常多的主机
但是我们怎么才能看出一个 IP 地址到底是哪类地址呢?
l 如果 32 位的 IP 地址以 0 开头,那么它就是一个 A 类地址。
l 如果 32 位的 IP 地址以 10 开头,那么它就是一个 B 类地址。
l 如果 32 位的 IP 地址以 110 开头,那么它就是一个 C 类地址。
那么转化为十进制(四段)的话,我们就能以第一段中的十进制数来区分 IP 地址到底是哪类地址了。
注意:
l 十进制第一段大于 223 的属于 D 类和 E 类地址,这两类比较特殊也不常见,这里就不做详解介绍了。
l 每一类都有一些排除地址,这些地址并不属于该类,他们是在一些特殊情况使用地址(后面会介绍)
l 除了这样的方式来划分网络,我们还可以把每个网络划分为更小的网络块,称之为子网(后面会介绍)
全是 0 的主机 ID 代表网络本身,比如说 IP 地址为 130.100.0.0 指的是网络 ID 为130.100 的 B 类地址。
全是 1 的主机 ID 代表广播,是用于向该网络中的全部主机方法消息的。 IP 地址为 130.100.255.255 就是网络 ID 为 130.100 网络的广播地址(二进制 IP 地址中全是 1 ,转换为十进制就是 255 )
以十进制 127 开头的地址都是环回地址。目的地址是环回地址的消息,其实是由本地发送和接收的。主要是用于测试 TCP/IP 软件是否正常工作。我们用 ping 功能的时候,一般用的环回地址是 127.0.0.1
2)地址解析协议 ARP
简单的来说 ARP 的作用就是把 IP 地址映射为物理地址,而与之相反的 RARP(逆向 ARP)就是将物理地址映射为 IP 地址。
3)子网
前面提到了 IP 地址的分类,但是对于 A 类和 B 类地址来说,每个网络下的主机数量太多了,那么网络的传输会变得很低效,并且很不灵活。比如说 IP地址为 100.0.0.0 的 A 类地址,这个网络下的主机数量超过了 1600 万台。
所以子网掩码的出现就是为了解决这样的问题。
我们先回顾一下之前如何区分主机 IP 和网络 IP 的。
以 A 类地址 99.10.10.10 为例,前 8 位是网络 IP ,后 24 位是主机 IP 。(如下图)
子网掩码也是一个 32 为的二进制数,也可以用四个十进制数来分段,他的每一位对应着 IP 地址的相应位置,数值为 1 时代表的是非主机位,数值为 0 时代表是主机位。
由表格可以很清晰的看出,网络 IP 仍是由之前的分类来决定到底是多少位,主机 IP 则是由子网掩码值为 0 的位数来决定,剩下的则是子网 IP
5、 传输层
传输层提供了两种到达目标网络的方式
l 传输控制协议(TCP):提供了完善的错误控制和流量控制,能够确保数据正常传输,是一个面向连接的协议。
l 用户数据报协议(UDP):只提供了基本的错误检测,是一个无连接的协议。
特点:
1)UDP:
l 把数据打包
l 数据大小有限制(64k)
l 不建立连接
l 速度快,但可靠性低
2)TCP:
l 建立连接通道
l 数据大小无限制
l 速度慢,但是可靠性高
由于传输层涉及的东西比较多,比如端口,Socket等,都是我们做移动开发需要了解的,之后的文章中我们再具体做介绍,这里就不讲解了。
6、 应用层
应用层做为 TCP/IP 协议的最高层级,对于我们移动开发来说,是接触最多的。
运行在TCP协议上的协议:
l HTTP(Hypertext Transfer Protocol,超文本传输协议),主要用于普通浏览。
l HTTPS(Hypertext Transfer Protocol over Secure Socket Layer, or HTTP over SSL,安全超文本传输协议),HTTP协议的安全版本。
l FTP(File Transfer Protocol,文件传输协议),由名知义,用于文件传输。
l POP3(Post Office Protocol, version 3,邮局协议),收邮件用。
l SMTP(Simple Mail Transfer Protocol,简单邮件传输协议),用来发送电子邮件。
l TELNET(Teletype over the Network,网络电传),通过一个终端(terminal)登陆到网络。
l SSH(Secure Shell,用于替代安全性差的TELNET),用于加密安全登陆用。
运行在UDP协议上的协议:
l BOOTP(Boot Protocol,启动协议),应用于无盘设备。
l NTP(Network Time Protocol,网络时间协议),用于网络同步。
l DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),动态配置IP地址。
其他:
l DNS(Domain Name Service,域名服务),用于完成地址查找,邮件转发等工作(运行在TCP和UDP协议上)。
l ECHO(Echo Protocol,回绕协议),用于查错及测量应答时间(运行在TCP和UDP协议上)。
l SNMP(Simple Network Management Protocol,简单网络管理协议),用于网络信息的收集和网络管理。
l ARP(Address Resolution Protocol,地址解析协议),用于动态解析以太网硬件的地址。
三、tcp、ip协议详细的更多相关文章
- 【Linux网络基础】TCP/IP协议簇的详细介绍(三次握手四次断开,11种状态)
一.TCP/IP协议簇(DoD参考模型) 用于简化OSI层次,以及相关的标准. 传输控制协议(tcp/ip)簇是相关国防部DoD所创建的,主要用来确保数据的完整性以及在毁灭性战争中维持通信 是由一组不 ...
- TCP/IP协议三次握手与四次握手流程解析
原文链接地址:http://www.2cto.com/net/201310/251896.html TCP/IP协议三次握手与四次握手流程解析 TCP/IP协议的详细信息参看<TCP/IP协议详 ...
- TCP/IP协议 三次握手与四次挥手
一.TCP报文格式 TCP/IP协议的详细信息参看<TCP/IP协议详解>三卷本.下面是TCP报文格式图: 图1 TCP报文格式 上图中有几个字段需要重点介绍下: (1)序号 ...
- TCP/IP协议 三次握手与四次挥手【转】
一.TCP报文格式 TCP/IP协议的详细信息参看<TCP/IP协议详解>三卷本.下面是TCP报文格式图: 图1 TCP报文格式 上图中有几个字段需要重点介绍下: (1)序号 ...
- TCP/IP协议三次握手与四次握手流程解析(转载及总结)
原文地址:http://www.2cto.com/net/201310/251896.html,转载请注明出处: TCP/IP协议三次握手与四次握手流程解析 一.TCP报文格式 TCP/IP协议的详 ...
- TCP/IP协议全解析 三次握手与四次挥手[转]
所谓三次握手(Three-Way Handshake)即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立.所谓四次挥手(Four-Way Wavehand) ...
- TCP/IP协议三次握手与四次握手
TCP/IP协议三次握手与四次握手流程解析 一.TCP报文格式 TCP/IP协议的详细信息参看<TCP/IP协议详解>三卷本.下面是TCP报文格式图:图1 TCP报文格式 上图中有几个 ...
- 【协议】2、TCP/IP协议三次握手与四次握手流程解析
一.TCP报文格式 TCP/IP协议的详细信息参看<TCP/IP协议详解>三卷本.下面是TCP报文格式图:图1 TCP报文格式 上图中有几个字段需要重点介绍下: (1)序号:Seq序 ...
- TCP/IP协议、三次握手、四次挥手
1.什么是TCP/IP协议 TCP/IP 是一类协议系统,它是用于网络通信的一套协议集合. 传统上来说 TCP/IP 被认为是一个四层协议 1) 网络接口层: 主要是指物理层次的一些接口,比如电缆等. ...
随机推荐
- C# 计算位置居中
(item.Height / 2 - lab.Height / 2)
- laravel orwhere的使用
- 牛客练习赛42 C 出题的诀窍
题目链接:https://ac.nowcoder.com/acm/contest/393/C 这个题就是对于每个数算贡献,如果有相同的数,只计算先出现的数的贡献 对于数x,若它在前i行的数目分别为a1 ...
- 模型-视图-控制器模式(MVC模式,10种常见体系架构模式之一)
一.简介: 架构模式是一个通用的.可重用的解决方案,用于在给定上下文中的软件体系结构中经常出现的问题.架构模式与软件设计模式类似,但具有更广泛的范围. 模型-视图-控制器模式,也称为MVC模式.是软件 ...
- Python学习——多线程,异步IO,生成器,协程
Python的语法是简洁的,也是难理解的. 比如yield关键字: def fun(): for i in range(5): print('test') x = yield i print('goo ...
- Java框架部分---面试题
说说Spring? Spring的核心是控制反转.依赖注入,Aop(面向切面)相当于把每个bean与bean之间的关系交给第 三方容器进行管理. 说SpringIOC.SpringAOP? Sprin ...
- leetcode python 010
#实现正则表达式匹配并支持'.'和'*'.#''匹配任何单个字符.#'*'匹配前面元素的零个或多个.#匹配应覆盖整个输入字符串(非部分).##Some examples:##isMatch(" ...
- jq demo 点击评分组件
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- linux 服务发布脚本升级,远程发布,指定拉取远程dev,test等分支代码
1.本地发布脚本 publish.sh #!/bin/sh currentDay=`date +%Y%m%d` currentTime=`date +%Y%m%d%H%M%S` tomcat1=/da ...
- Linux设备驱动程序 第三版 读书笔记(一)
Linux设备驱动程序 第三版 读书笔记(一) Bob Zhang 2017.08.25 编写基本的Hello World模块 #include <linux/init.h> #inclu ...