计算机组成原理

TCP/IP

TCP/IP不是一个协议而是一个协议族的统称。在这里插入图片描述

IP地址

网络上每个节点都必须有一个独立的IP地址,通常使用的IP地址是一个32bit的数字,被.分成4组,例如,255.255.255.255就是一个IP地址。有了IP地址,用户的计算机就可以发现并连接互联网中的其他计算机。
Linux系统中,就可以ifconfig -a 命令查看自己的IP地址:

域名

互联网给每个IP地址起了一个别名,称作域名。
域名和计算机的IP地址相对应,这种对应关系存储在域名就可以与指定的计算机进行通信。常见的域名包括com、net、org三种顶级域名后缀(如我国的域名后缀为.cn),目前经常使用的域名有www.baidu.com、www.lwn.net
我们可以使用命令nslooup或者ping来查看与域名相对应的IP地址,例如在命令行输入 ping www.baidu.com

MAC地址(物理地址、硬件地址)

在TCP/IP层次模型中,网络管理IP地址,链路层则负责MAC地址。因此每个网络位置会有一个专属于它的IP地址,而每个主机会有一个专属于它的MAC地址。

端口号

IP地址是用来发现和查找网络中的地址,但是不同程序之间需要通过端口号来识别以相互通信。端口号采用16比特的端口号来标识,一个IP地址的端口可以有2^16(65536)个。
SMTP(简单邮件传输协议)服务器的TCP端口号是25,FTP(文件传输协议)的TCP端口号是21,TFTP(简单文件传输协议)服务器的UDP端口号是69.任何TCP/IP实现所提供的服务都用众所周知的1-1023之间的端口号。
常用协议对应端口号:
SSH 22
FTP 20、21
Telnet 23
SMTP 25
TFTP 69
DNS 53
HTTP 80
SNMP 161
Ping 使用ICMP,无具体端口号

封装和分用

封装::当应用程序发送数据的时候,数据在协议层次当中自顶向下通过每一层,每一层都会对数据增加一些首部或尾部信息,这样的信息称为数据协议单元(PDU:Protocol Data Unit)。
在分层协议系统里,在指定的协议层上传送的数据单元,包含了该层的协议控制信息和用户信息。

物理层(一层)PDU指数据位(Bit)
数据链路层(二层)PDU指数据帧(Frame)
网络层(三层) PDU指数据包(Packet)
传输层(四层)PDU指数据段(Segment)
第五层以上为数据(data)
在这里插入图片描述

REF(Request for Comment)

REF文档是所有以太网协议的正式标准。

差错控制

通信系统必须具有发现差错的能力,并采取措施纠正使差错控制在所能允许的尽可能小的范围内,这就是差错控制过程,也是数据链路层的主要功能之一。

  1. 反馈重发
    接收方通过对差错编码(奇偶校验码或CRC码)的检查,可以判定一帧在传输过程中是否发生了差错。一旦发现差错一半可以采用
    反馈重发
    **的方法来纠正。这就要求接收方收完一帧后,向发送方反馈一个接收是否正确的信息,使发送方据此作出是否需要重新发送的决定。发送方仅当收到接收方已正确接收的反馈信号后才能认为该帧已经正确发送完毕,否则重发直至正确为止。
  2. 计时器
  3. 如果某帧发送出现问题,一直不能发送成功,为了避免传输过程停滞不前,通常引入计时器来限定接收方发回反馈消息的时间间隔。当发送方发送一帧的同时也启动计时器,若在限定时间间隔内未能收到接收方的反馈消息,即计时器超时,则可认为可传出的帧已出错或丢失,就重新发送。
  4. 序号
    由于同一帧数据可能被重复发送多次,就可能引起接收方多次收到同一帧并将其递交给网络层的情况。为了防止这种情况,可以采用对发送帧编号的方法,即赋予每帧一个序号,从而使接收方能从该序号来区分是新发送来的帧还是重发的帧,以此来确定要不要将接收到的帧递交给网络层。

流量控制

由于收发双方各自使用的设备工作速率和缓冲存储空间的差异,可能出现发送方的发送能力大于接收方接收能力的现象,此时若不对发送方的发送速率做适当的限制,前面来不及接受的帧将被后面不断发送来的帧“淹没”,从而造成帧的丢失而出错。
流量控制实际上是对发送方数据流量的控制,使其发送速率不超过接收方的速率。所以需要一些规则使得发送方知道在什么情况下暂停发送,以等待收到某种反馈信息后再继续发送。

## ppp(点对点协议)
PPP是为在同等单元之间传输数据设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共同的解决方案。
点对点协议(PPP)在点对点连接上传输多协议数据包提供了一个标准方法。PPP最初设计是为两个对等节点之间的IP流量传输提供一种封装协议。在TCP/IP协议集中它是一种用来同步调制连接的数据链路层协议。
## SLIP协议

PPP协议

## MTU
为了提供足够快的响应时间,以太网和IEEE802.3对数据帧长度都有限制,其最大值分别为1500字节和1492字节,链路层的这个特性称作MTU,即最大传输单元。
MTU分为接口MTU和路径MTU:
接口MTU:是指定的接口所允许发送的最大数据长度;
路径MTU:指两台通信主机路径中最小的MTU值。路径MTU是不对称的,它在两个方向上不一定一致。
## IP数据报
IP协议位于网络层,它是TCP/IP协议族中最为核心的协议,所有的TCP、UDP、ICMP、及IGMP数据都以IP数据报格式传输。IP协议提供的是不可靠的、无连接的数据传送服务。
## IP地址分类
IP地址分为5类A、B、C、D、E类:
A类给大型网络或政府机构等
B类分配给中型网络、跨国企业
C类分配给小型网络
D类用于多播
E类用于实验
A类***地址网络号范围:1.0.0.0—127.0.0.0
A类IP地址范围:1.0.0.0—127.255.255.255
A类IP的私有地址范围:10.0.0.0—10.255.255.255(所谓的私有地址就是在互联网上不使用,而被用在局域网络中的地址)
127.X.X.X是保留地址,用于循环测试
因为主机号有24位,所以一个A类网络号可以容纳2^24-2=16777214个主机号
B类地址
B类地址网络号范围:128.0.0.0—191.255.0.0
B类IP地址范围:128.0.0.0—191.255.255.255
B类IP的私有地址范围:172.16.0.0—172.31.255.255
169.254.X.X是保留地址;191.255.255.255是广播地址
因为主机号有16位,所以一个B类网络号可以容纳2^16-2=65534个主机号
C类地址
C类地址网络号范围:192.0.0.0—223.255.255.0
C类地址IP地址范围:192.0.0.0—223.255.255.255
C类IP的私有地址范围:192.168.0.0—192.168.255.255
因为主机号有8位,所以一个C类网络号可以容纳2^8=254个主机号
## 子网划分
IP地址如果只使用ABCDE类划分,会造成大量的浪费。
因此可以在ABC类网络的基础上进一步划分子网:占用主机号的前几个位,用于表示子网号。
则***IP=网络号+子网号+主机号

NAT技术

IPv6的地址长度是128位,通常将这128位的地址按每16位划分一个段,将每个段转换成十六进制数字,并用冒号隔开,例如:2000:0000:0000:0001:2345:6789:abcd就是一个IPv6的地址。

## ARP(地址解析协议)
当主机通过数据链路发送数据的时候,IP数据报会先被封装为一个数据帧,而MAC地址会被添加到数据帧的报头。ARP便是在这个过程中通过目标主机的IP地址,查询目标主机的MAC地址。
## RARP(逆地址解析协议)
将MAC地址转换为IP地址,对应于ARP,RARP请求以广播方式传送,而RARP应答一般是单播传送的。
## ICMP控制报文协议

ping程序

ping程序和traceroute程序是两个常见的基于ICMP协议的工具。

TTL值

ping命令判断操作系统

在环境里ping 127.0.0.1查看自己的TTL值

traceroute程序

IGMP(组管理协议)

传输层协议

通信的两端是两台主机,IP数据报首部就标明了这两台主机的IP地址。但是从传输层来看,是发送方主机中的一个进程与接收方主机中的一个进程在交换数据。
## 端口
编号0~1023为系统端口号
编号1024~49151为登记端口号
编号49152~65535为短暂端口号

UDP协议(用户数据报协议)

UDP特点:
1、无连接,发送数据之前不需要建立连接
2、尽最大努力交付,不保证可靠性
3、面向报文,对于从应用层交付下来的IP数据报,只做简单的封装(8字节UDP报头),首部开销小。
4、UDP没有拥塞控制,出现网络拥塞时发送方也不会降低发送速率。它们允许拥塞时丢失一些数据。
5、UDP支持一对一、一对多、多对一和多对多的交互通信。

UDP报文

UDP报文分为两部分:UDP报头和数据部分。其中数据部分是应用层交付下来的数据。UDP报头总共8字节,而这8字节又分为4个字段。

tcpdump抓取UDP报文

TCP

TCP特点:

  1. TCP提供可靠的数据传输服务,面向连接
  2. 连接是点对点的,一条TCP连接只能连接两个端点
  3. TCP提供可靠,无差错、不丢失、不重复、按顺序
  4. TCP提供全双工通信,允许通信双方任何时候都能发送数据
  5. TCP面向字节流。TCP并不知道所传输数据的含义,仅仅把数据看作一连串字节序列。
    ## TCP报文段结构
    TCP是面向字节流的,而TCP传输数据的单元是报文段***。一个TCP报文段分为两部分:报头数据部分*。数据部分是上层应用交付的数据,而报头则是TCP功能的关键。

连接的建立与释放

TCP是面向连接的,在传输TCP报文段之前要先创建连接,发起连接的一方称为客户端,响应连接请求的一方被称为服务端。创建连接的过程被称为三次握手。
***释放连接:***当传输数据结束后,通信双方都可以释放连接,这个释放连接过程被称为释放连接。

TCP可靠传输的实现

  1. TCP报文段的长度可变,根据收发双方的缓存状态、网络状态而调整
  2. 当TCP收到发自TCP连接另一端的数据,它将发送一个确认。
  3. ***超时重发机制:***当TCP发出一个报文段后,它启动一个定时器,等待目的端确认收到这个报文段,如果不能及时收到一个确认,就重发这个报文段。
  4. TCP将保持它首部和数据的检验和。如果检验发现报文段有差错,这个报文段将被丢弃,等待超时重传。
  5. TCP将数据按字节排序,报文段中有序号,以确保顺序的正确性。
  6. TCP还能提供流量控制。TCP连接的每一方都有收发缓存。TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据,这将防止较快主机使得较慢主机的缓冲区溢出。
    ## 超时重传
    1、发送者发送一个报文段后,暂时发生超时重传时使用,保存该报文段的副本,为发生超时重传时使用,收到确认报文后删除该报文段。
    2、确认报文也需要序号,才能明确发出去的哪个数据报得到了确认。
    3、超时计时器比传输往返时间略长,但具体值时不确定的,根据网络情况而变。
    ## 连续AQR协议
    超时重传机制很费时间,实际中采用***流水线传输***:发送方可以连续发送多个报文段,而不必每发完一段就停下来等待确认。
    实际应用中,接收方也不必对收到的每个报文都做出回复,而是采用累计确认的方式,接收者收到多个连续的报文段后,之回复确认最后一个报文段,表示在这之前的数据都已收到。
    ## 流量控制和拥塞控制
    由于接收方缓存的限制,发送窗口不能大于接收方接收窗口。
    ## tcpdump抓取TCP报文段
    ## DNS协议

## FTP协议
## HTTP协议
## TELNET协议
## TELNET测试主机端口
## TFTP协议
## SMPT协议
## POP3协议

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值