TCP/IP网络协议初识

目录

  • 一、什么是协议?
  • 二、什么是TCP/IP协议?
  • 三、TCP/IP为什么这么多协议?
  • 四、TCP/IP协议为什么分层?
  • 五、TCP/IP协议如何入门?
  • 六、TCP/IP 的分层:
  • 七、各协议层打包和拆包过程:
  • 八、浏览器访问网页的整个流程:
  • 九、举例:网上购物的请求流程

一、什么是协议?

协议就是两个或多个对象之间为了某个或多个需求而设置的约定,即在什么时间,遇到什么情况该做什么。

举例: 小强和小明约定周末一起去玩小霸王游戏机,但是如果遇上停电就去掏鸟窝。

二、什么是TCP/IP协议?

TCP/IP 协议就是为了满足世界上成千上万的网络设备的各种通信需求而设计的一套约定。

举例: 你要从某网站下载一部电影,如何实现呢?

首先网站服务器和你的电脑互相识别,需要 IP协议;

为了跨越几千公里的互联网找到一条通往你电脑的路径,需要路由协议;

为了片子数据传输不丢失乱序重复,需要 TCP协议;

另外你可以用FTP协议接收电影。单个协议就是单个约定,以TCP为例,

约定了通信时超时怎么办?

数据丢失怎么办?

乱序怎么办?

网络拥塞了怎么办? 等等。

三、TCP/IP为什么这么多协议?

? 不是协议多,而是需求多,每个协议都是从具体的实际需求中产生的。需求多了,问题就多,为了解决一个个的问题,而出现了一个个的协议。

举例:支付页面一般是https,因为安全需求;

组播协议出现是因为网络点播需求;

IP over AOS 出现是因为宇航员方便上网的需求等等。

四、TCP/IP协议为什么分层?

? “分层”的思想可以应用到很多领域,它是复杂问题简单化的有效方法。

协议分层好处: 协议只需关注本层问题,直接利用下层提供的服务,同时向上层提供服务,并且每层的更改不会影响其他层。

举例:

经典四层模型: 应用层—>传输层—>网络层—>物理层(链路层)

五、TCP/IP协议如何入门?

要点1: 谨记“网络协议因需求而产生,以解决实际问题为目的”,因此学习某个协议一定要了解它的应用场景和提出目的。

要点2: 选一本好的入门教程。本人极力推荐谢希仁教授的《计算机网络》,本书概念清晰,思路明确,既不肤浅又不是很深入且面面俱到,现在已经出到第六版,本书阅读不得低于3遍。

要点3: 针对某个协议,深入理解其报文格式是学习的关键。协议程序化后就是“数据结构+算法”,报文格式就是“数据结构”。

要点4: 一定要动手实验,这可以加深对协议理解。比如可以用网络抓包(如wireshark)学习某个协议的算法,如ARP的发现过程,TCP的握手协议,TFTP的文件传输原理。还可以网络编程,如简单的网络攻击软件制作等。

六、TCP/IP 的分层:

七、各协议层打包和拆包过程:

在浏览器发送信息到服务的时候,在通信协议的过程中,会分为四层:

首先,是应用层(http协议),封装一些要传递的信息。

其次,到传输层(tcp协议), tcp协议对应用层数据进行打包。

然后,到网络层(ip协议),通过ip找到对应的服务器。

最后,到链路层(通过物理的介质传输数据)。

每一层都会对上一层进行打包。

八、浏览器访问网页的整个流程:

九、举例:网上购物的请求流程

1.各层间的走向

客户端(浏览器) —> 应用层 (http,https,DNS)—> 传输层(TCP, UDP) —> 网络层 (IP)—>物理层—> 服务器

—> 物理层—>网络层 —> 传输层 —> 应用层 —>具体的应用处理

2.具体的请求过程

你先在浏览器里面输入 https://www.kaola.com ,这是一个URL。浏览器只知道名字

是“www.kaola.com”,接着它打开地址簿去查找(DNS),查找到对应的 IP(106.114.138.24) 地址,

知道了具体的 IP 地址后,浏览器开始打包请求(HTTP):

经过应用层封装后,浏览器会将应用层的包交给下一层去完成,通过 socket 编程来实现。下一层是传输层(TCP, UDP),TCP 协议里面会有两个端口,一个是浏览器监听的端口,一个是电商的服务器监听的端口。操作系统往往通过端口来判断,它得到的包应该给哪个进程。

传输层封装完毕后,浏览器会将包交给操作系统的网络层。网络层的协议是 IP 协议。在 IP 协议
里面会有源 IP 地址,即浏览器所在机器的 IP 地址和目标 IP 地址,也即电商网站所在服务器的
IP 地址。

于是操作系统将 IP 包交给了下一层,也就是MAC 层。网卡再将包发出去。由于这个包里面是
有 MAC 地址的,因而它能够到达网关。
网关收到包之后,会根据自己的知识,判断下一步应该怎么走。网关往往是一个路由器,到某个
IP 地址应该怎么走,这个叫作路由表。

走到最后一个网关后,通过 IP 找到具体的机器,通过端口找到对应的应用进行处理该笔请求。

3.服务器端处理流程

参考资料:

①书籍《图解HTTP》

②极客时间|趣谈网络协议 --刘超

原文地址:https://www.cnblogs.com/tester-ggf/p/11962943.html

时间: 2024-10-16 01:19:26

TCP/IP网络协议初识的相关文章

TCP/IP网络协议

什么是协议?协议就是双方约定的规则.同理,在网络中,计算机之间的相互通信需要共同遵守一定的规则,这些规则就称为网络协议. 下面是我百度的定义: TCP/IP是“transmission Control Protocol/Internet Protocol”的简写,中文译名为传输控制协议/互联网络协议)协议, TCP/IP(传输控制协议/网间协议)是一种网络通信协议,它规范了网络上的所有通信设备,尤其是一个主机与另一个主机之间的数据往来格式以及传送方式.TCP/IP是INTERNET的基础协议,也

对TCP/IP网络协议的深入浅出归纳

前段时间做了一个开发,涉及到网络编程,开发过程比较顺利,但任务完成后始终觉得有一些疑惑.主要是因为对网络协议不太熟悉,对一些概念也没弄清楚.后来 我花了一些时间去了解这些网络协议,现在对TCP/IP网络协议有了初步的认识,在这里总结出来,可以梳理一下我对网络协议的理解,加深印象. 话说两台电脑要通讯就必须遵守共同的规则,就好比两个人要沟通就必须使用共同的语言一样.一个只懂英语的人,和一个只懂中文的人由于没有共同的语言(规则)就没办法沟通.两台电脑之间进行通讯所共同遵守的规则,就是网络协议. 那么

对TCP/IP网络协议的深入浅出归纳(转)

前段时间做了一个开发,涉及到网络编程,开发过程比较顺利,但任务完成后始终觉得有一些疑惑.主要是因为对网络协议不太熟悉,对一些概念也没弄清楚.后来 我花了一些时间去了解这些网络协议,现在对TCP/IP网络协议有了初步的认识,在这里总结出来,可以梳理一下我对网络协议的理解,加深印象. 话说两台电脑要通讯就必须遵守共同的规则,就好比两个人要沟通就必须使用共同的语言一样.一个只懂英语的人,和一个只懂中文的人由于没有共同的语言(规则)就没办法沟通.两台电脑之间进行通讯所共同遵守的规则,就是网络协议. 那么

[转]对TCP/IP网络协议的深入浅出归纳

转自:http://blog.jobbole.com/74795/ 前段时间做了一个开发,涉及到网络编程,开发过程比较顺利,但任务完成后始终觉得有一些疑惑.主要是因为对网络协议不太熟悉,对一些概念也没弄清楚.后来 我花了一些时间去了解这些网络协议,现在对TCP/IP网络协议有了初步的认识,在这里总结出来,可以梳理一下我对网络协议的理解,加深印象. 话说两台电脑要通讯就必须遵守共同的规则,就好比两个人要沟通就必须使用共同的语言一样.一个只懂英语的人,和一个只懂中文的人由于没有共同的语言(规则)就没

转:对TCP/IP网络协议的深入浅出归纳

前段时间做了一个开发,涉及到网络编程,开发过程比较顺利,但任务完成后始终觉得有一些疑惑.主要是因为对网络协议不太熟悉,对一些概念也没弄清楚.后来 我花了一些时间去了解这些网络协议,现在对TCP/IP网络协议有了初步的认识,在这里总结出来,可以梳理一下我对网络协议的理解,加深印象. 话说两台电脑要通讯就必须遵守共同的规则,就好比两个人要沟通就必须使用共同的语言一样.一个只懂英语的人,和一个只懂中文的人由于没有共同的语言(规则)就没办法沟通.两台电脑之间进行通讯所共同遵守的规则,就是网络协议. 那么

TCP/IP网络协议基础知识集锦[转]

引言 本篇属于TCP/IP协议的基础知识,重点介绍了TCP/IP协议簇的内容.作用以及TCP.UDP.IP三种常见网络协议相关的基础知识. 内容 TCP/IP协议簇是由OSI七层模型发展而来的,之所以存在OSI互联参考模型主要有以下几点好处: 1.用于解决不同厂商的设备互联问题:即兼容性考虑; 2.层次化结构独立性强;可扩展性强; 3.统一标准可以方便学习; TCP/IP模型 TCP/IP模型与OSI模型的相互关系如下图所示: 注释 1.应用层:与OSI的应用层.表示层.会话层相对应,主要作用是

tcp/ip网络协议学习

链路层介绍 网络层协议的数据单元是 IP 数据报 ,而数据链路层的工作就是把网络层交下来的 IP 数据报 封装为 帧(frame)发送到链路上,以及把接收到的帧中的数据取出并上交给网络层. 以太网 以太网(Ether-net)是指 DEC 公司.Intel 公司和 Xerox 公司在 1982 年联合公布的一个标准(链路层数据帧的的封装格式). PPP(点对点协议) PPP(点到点协议)是为在同等单元之间传输数据设计的链路层协议.这种链路提供全双工操作,并按照顺序传递数据.设计目的主要是用来通过

TCP/IP网络协议写作计划

这两年已经反复地想深入学习TCP/IP协议栈了,但是一直都是流于表面,止步于通读教材的水平.每次别人一问到TCP深入的机制,脑子里面总是浮现众多概念,确无法明白地讲出来.很憋. 这回希望可以强迫自己,系统地把网络协议整理一下,计划包括几方面: 1 TCP/IP协议的整理,主要是TCP 2 Linux网络协议栈的实现 3 uIP协议栈

tcp/ip (网络通讯协议)

介绍 TCP: 传输控制协议, IP: 网际协议, TCP/IP: 供已连接互联网的计算机之间进行通信的通信协议 在tcp/ip内部 , 包含一系列处理数据通信的协议: tcp.udp.icmp.dhcp ip负责将每个包路由至它的目的地.(网络层) tcp用于应用程序之间的通信, 负责处理ip包.(传输层) RFC是tcp/ip协议的标准文档. tcp/ip, 又名: 网络通讯协议. 寻址 ip地址: 每个计算机必须有ip地址才能够接入互联网, 每个ip包必须有一个地址才能够发送到目的计算机.