TCP/IP协议篇:概述

马谦马谦马谦 TCP/IP评论720字数 1192阅读3分58秒阅读模式

一、什么是tcp/ip

tcp/ip 是一个网络通讯协议,为不同的的主机和操作系统之间提供一种统一的通信标准。起源于上世纪60年代末美国政府的一个分组交换网络项目,到90年代就成为了计算机之间最常用的组网形式。

二、tcp/ip的工作模型

tcp/ip 一共分为四层,由低到高分别是:链路层 网络层 传输层 应用层

2.1 链路层

链路层位于网络模型的最底层,主要功能是为上层数据提供数据传输的通路,链路层存在于计算机和计算机之间,规定了许多的物理上的规范。譬如计算机之间的网络接口配置规范、数据链路的机械特性和电气特性等规范等,使得不同的计算机接口以及不同的传输媒介之间都能相互通信。

2.2 网络层

数据链路层提供了一条或者多条稳定的数据传输通路之后,现在就需要网络层来工作了。网络层主要用于计算机之间的网络寻址,为发送的数据包寻找去目的主机的路线,包含了最基本的ip 协议。

2.3 传输层

传输层用来传送和分发数据,把不同应用之间的数据根据不同协议整理成相应的数据包,交给网络层下发下去,然后接受方在收到数据之后解析数据包到相应的应用。

2.4 应用层

应用层主要是用户使用的上层应用,例如smtp http ftp 等等。

2.5 简单的比喻

一个最简单的比喻,把四层模型当作  车站 和之间的关系。

在四层关系中,人属于应用层,因为每个人都要坐车去自己要去的地方,并且是去做不同的事情;而车站属于传输层,根据人要去的地方或去的方式不同从而选择不同的出行方式,譬如可以根据目的地的远近选择火车或是汽车;车属于网络层,根据人不同的目的地选择不同的路线,可能路线并不只一条,根据不同的需要选择不同的路线;最后的道路属于传输层,为不同的车之间提供不同的通路,例如火车走的火车道,汽车走的汽车道,虽然方式不同,但是都要到达目的地。

二、工作流程

以最常用的http 协议为例,它在客户端和服务端之间的工作流程为:

//todo 图形

三、IP地址和端口号

可能大部分人都知道,ip地址用来标志网络中的每一台主机,通过ip就能定位到主机的位置,相当于生活中的门牌号一样。那么端口是什么呢?相信大部分无基础的人都不知道计算机还有端口这个概念,甚至可能还包含很多有基础的人,曾经的我也是这其中的一员。

其实端口号也很简单,就像是ip一样,ip标志网络中的每一台主机,端口则是标志一台主机中不同的程序,让主机知道什么数据包是属于什么程序的,就这么简单。因为一台计算机肯定是同时运行多个程序的,如果仅仅靠ip来判断的话,我们就不能知道数据包到底是属于哪个程序。

记得最清楚的就是当初学这门课程的时候,老师一来就给我们抛了这个问题:一台电脑中有多个程序,当我们从网络中获取到数据,怎么知道哪些数据包是属于哪个应用的?当时也是一脸懵逼,被老师完全问倒,即便是后来无数次的讲到,心里也依然没有这个概念,直到后来工作,认真再看这个问题才慢慢明白。

 

 最后更新:2020-1-11
马谦马谦马谦
  • 本文由 马谦马谦马谦 发表于 2017年10月1日20:25:21
  • 转载请务必保留本文链接:https://www.dyxmq.cn/network/tcpip/tcpip-introduce.html
TCP协议中的三次握手和四次挥手 TCP/IP

TCP协议中的三次握手和四次挥手

一、三次握手 TCP协议的三次握手和四次挥手分别表示了TCP连接的建立和释放过程,在整个TCP协议是一个很重要的内容,同时也是面试时的常见考点。 趁着找工作的劲,使用socket+tcpdump分析了...
Wireshark抓取以太网数据包 Wireshark

Wireshark抓取以太网数据包

一、概述 几乎所有的数据包都是通过以太网来传输,所以使用wireshark抓取以太网数据包非常容易,这里我们以DNS数据包为例。 二、抓包 1. 准备数据 打开wireshark,在筛选栏输入dns,...
TCP/TP协议篇:IP协议 TCP/IP

TCP/TP协议篇:IP协议

一、概述 IP是TCP/IP协议族中的核心协议,所有TCP UDP ICMP以及IGMP 数据都要通过IP 协议来传输。 IP 是一种无连接协议,不负责维护网络连接中的任何连接状态,提供尽力而为 的服...
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证