TCP/IP——TCP/IP概述

1:TCP/IP概述

在这里插入图片描述

1.1 运行FTP的两台主机实例

File Transfer Protocol
“FTP是File Transfer Protocol的英文简称,而中文简称为“文传协议”,用于Internet上的控制文件的双向传输,使用客户/服务器模式,它属于网络传输协议的应用层,FTP是一个8位的客户端-服务器协议,能操作任何类型的文件而不需要进一步处理。”

  • 大多数的网络应用程序都被设计成客户——服务器模式
  • 双方都有对应的一个或多个协议进行通讯
  • 应用程序通常是用户进程,而下三层一般在内核执行
  • 应用层关心应用程序的细节,下三层处理通讯细节

在这里插入图片描述

1.2 通过路由器连接的两个网络实例

  • 端系统
  • 中间系统
  • 应用层和运输层使用端到端(end-to-end)协议
  • 网络层提供的是逐跳协议(hop-to-hop)
  • 网络ip提供的是一种不可靠的服务,他们只是尽可呢快的把分组从源节点送到目的节点,但不提供可靠性保障
  • TCP在不可靠的IP层上提供一个可靠的运输层
  • 互联网的目的之一就是在应用程序中隐藏所有的物理细节
    在这里插入图片描述

1.3 用实际生活中的事物来比喻TCP/IP不同层的工作原理。

在这里插入图片描述

应用层(FTP协议):

首先我们说说应用层,应用层就像在特定城市特定大厦特定房间内的某一个用户,应用层之间的通讯就像两个不同用户之间发送的信,这个信是点对点的,从一个用户(某一主机内特定应用程序)到另外一个特定用户(另一主机内特定应用程序)。一个主机(大厦)内可能有很多应用程序(客户),我们如何区分它们呢,实际生活中我们用房间号,在电脑内部区分不同应用程序我们用端口号。

传输层(TCP):

用户写好了信,需要给信套上信封,并且写好发件人所在大厦,和收件人所在大厦,实际生活中的大厦完全可以类比为我们的计算机和服务器。传输层(TCP)就是在两个不同主机之间传输信息的协议。

网络层(IP):

邮件准备好了,他首先会被送到本城市的快递公司,并且被打包,包裹上会写着源是重庆快递公司,目的是沈阳快递公司,但是重庆快递公司发现它不能直接发货到沈阳,需要通过北京快递公司进行中转。所以虽然目的是沈阳,但是他首先把这个包裹发给了北京。某个城市的快递公司就像IP协议,要抵达目的IP,需要查询路由表,如果发现目的地址不是直连就需要找下一跳。通过了解快递公司的工作,我们了解到IP协议是逐跳工作的。每一跳(路由器)根据目的IP地址查询下一跳,并且最终转发到目的地。

链路层(以太网):

重庆快递公司已经知道他需要把包裹发给北京快递公司了,现在他就把包裹送到重庆火车站,搭上去往北京的火车,然后在北京火车站卸货。然后送到北京快递公司,北京快递公司再判断下一跳为沈阳快递公司,并且选择适当的传输方式,例如:汽车,最后通过这种传输方式送到目的地沈阳快递公司。链路层协议就像包裹的运输方式,我们可以选择以太网(火车),也可以选择令牌环(汽车)。并且链路层协议是逐介质的,从一个网卡(重庆火车站)到另外一个网卡(北京火车站)。
所以你会发现一个数据包从源到目的,IP地址总是不变的(源是重庆快递公司,目的是沈阳快递公司),但是链路层协议却在不断变化,第一跳源是重庆火车站,目的是北京火车站,第二跳源是北京汽车站,目的是沈阳汽车站。

来源:TCP/IP的比喻

1.4 怎么理解TCP在不可靠的IP层上提供一个可靠的运输层?

在这里插入图片描述
我们可以把淘宝买卖双方的关系,比作可靠的传输层TCP,因为他们之间的交易是需要确认的是可靠的。如果买家没有收到货物,肯定不能给卖家确认。但是快递公司可比作不可靠的网络层协议(IP)。卖家把一部销售给买家的手机封在一个包裹内(IP封包的过程),并且把这个包裹交给快递。对于快递的收件员,其实他并不清楚这个包裹内的东西是什么,他只用负责把这个包裹按照上面写的地址送到买家的手中(IP路由的过程)。由于网络层协议(IP)和快递一样不总是都靠谱,所以丢包是难免的。一旦出现丢包,长期没有收到快递的愤怒的买家就会找到卖家,倒霉的卖家只能把那部手机重新再发一次(一般快递都会推脱责任不予赔偿),这个过程就叫做TCP的超时重传。流着泪的卖家把新的包裹再次交给收件员,对于卖家而言这确实是再次。但是对于收件员而言,这只是一个普通的包裹,绝对不可能知道这是上次丢失包裹的一次重传。(这也是网络分层的目的,向下层隐藏上层的工作细节)。非常幸运的是,这次快递公司“不辱使命”成功完成了任务,把包裹交给了淘宝买家,买家对手机进行检查并且给卖家进行确认(TCP对数据的确认),本次会话结束。
来源:可靠的TCP与不可靠的IP

1.5 TCP/IP协议族中不同层次的协议

  • TCP使用不可靠的IP服务,并提供一种可靠的运输层服务
  • UDP为应用程序发送和接受数据报,和TCP不同,UDP是不可靠的。
  • IP是网络层上的主要协议,同时被TCP和UDP使用。
  • ICMP是IP协议的附属协

ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
ICMP使用IP的基本支持,就像它是一个更高级别的协议,但是,ICMP实际上是IP的一个组成部分,必须由每个IP模块实现。
在这里插入图片描述

1.6 封装

  • 发送请求端叫封装

  • 以太网数据帧的物理特性是其长度必须在46~1 500字节之间

  • 以太网的帧首部也有一个16bit的帧类型域(ip,arp,rarp)

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。相关协议有RARP、代理ARP。NDP用于在IPv6中代替地址解析协议。

反向地址转换协议(RARP:Reverse Address Resolution Protocol) 反向地址转换协议(RARP)允许局域网的物理机器从网关服务器的 ARP 表或者缓存上请求其 IP 地址。网络管理员在局域网网关路由器里创建一个表以映射物理地址(MAC)和与其对应的 IP 地址。当设置一台新的机器时,其 RARP 客户机程序需要向路由器上的 RARP 服务器请求相应的 IP 地址。假设在路由表中已经设置了一个记录,RARP 服务器将会返回 IP 地址给机器,此机器就会存储起来以便日后使用。 RARP 可以使用于以太网、光纤分布式数据接口及令牌环 LAN

  • IP在首部中存入一一个长度为8 bit的数值,称作协议域(icmp,igmp,tcp,udp,esp,gre)

  • TCP和UDP都用一个16bit的端口号来表示不同的应用程序(ftp,telnet,http)
    在这里插入图片描述

1.7 分用

  • 接受请求端叫分用
    在这里插入图片描述

1.8 端口号

  • 服务器一般都是通过知名端口号来识别的(ftp21,telnet23)

  • 客户端口号又称作临时端口号(即存在时间很短暂)

  • 大多数TCP/IP实现给临时端口分配1024~ 5000之间的端口号。

  • 大于5 0 0 0的端口号是为其他服务器预留的( Internet上并不常用的服务)。

大多知名端口为奇数的由来
如果仔细检查这些标准的简单服务以及其他标准的TCP/IP服务(如Telnet、FTP、SMTP等)的端口号时,我们发现它们都是奇数。这是有历史原因的,因为这些端口号都是从NCP端口号派生出来的(NCP ,即网络控制协议,是ARPANET的运输层协议,是TCP的前身)。NCP是单工的,不是全双工的,因此每个应用程序需要两个连接,需预留一对奇数和偶数端口号。当TCP和UDP成为标准的运输层协议时,每个应用程序只需要一个端口号,因此就使用了NCP中的奇数。(网络控制协议是一组独立定义的协议。NCP层协议一般是在WAN连接的一端丢失了特定协议的成功操作的信息时被使用。
例如,如果一个用户要拨号进入Cisco路由器,该用户的机器一般不知道要使用哪个IP地址,因此必须通过NCP/IPCP协商从Cisco路由器获得一个地址。然而,当在专用连接上使用PPP时,网络管理者分配所有的网络层属性,因此NCP的能力并不重要。)

1.9 TCP/IP实现过程

在这里插入图片描述

©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页