计算机网络学习记录

本文介绍了计算机网络的基础知识,包括互联网的结构、分组延迟、丢失和吞吐量的概念,以及协议层次模型,特别关注了TCP和UDP在传输层的作用,同时涵盖了应用层的HTTP、FTP等协议,DNS域名解析系统,P2P网络,以及多媒体网络中的流媒体传输技术。
摘要由CSDN通过智能技术生成

计算机网络

主要内容

  • 计算机网络和互联网
  • 应用层
  • 传输层
  • 网络层:数据平面
  • 网络层:控制平面
  • 数据链路层和局域网
  • 网络安全
  • 无线和移动网络
  • 多媒体网络
  • 网络管理

计算机网络和互联网

什么是互联网: 分布式的应用和支持分布式应用提供通讯服务的基础设施

网络边缘

  • 主机
  • 应用程序

网络核心

  • 互联的路由器
  • 网络的网络

接入网

  • 有线或无线通信链路

物理媒体

Internet 结构和ISP

端系统通过ISPs连接到互联网

互联网的结构是网络的网络

分组延时、丢失和吞吐量

分组延时:分组排队产生延时

  • 节点处理延时
    • 检查bit级差错
    • 检查分组首部和决定将组导向何处
    • 微秒数量级或者更少
  • 排队延时
    • 在输出链路上等待传输的时间
    • 取决于路由器的拥塞程度
  • 传输延时
    • R=链路带宽
    • L=分组长度
    • 将分组发送到链路上的时间为L/R
    • 存储转发延时
    • 微秒数量级到毫秒级
  • 传播延时
    • d=物理链路长度
    • s=媒体传播速度(2*10^8 m/s)
    • 传播延时为d/s
    • 几微秒到几百毫秒

丢失:分组到达时,没有可用的缓冲区,分组就会被丢掉

吞吐量:在源端和目标端之间传输的速率(数据量/时间)

瞬间吞吐量:在一个时间点的速率

平均吞吐量:在一段时间内的平均值

协议层次和服务模型

计算机网络是一个复杂的系统

层次化的方式可以实现这种复杂的网络功能

  • 如:大洋两岸的哲学家交流,通过他们的翻译人员,将见解翻译成同一种语言,再通过通讯人员传输见解,达到交流的目的

将网络功能明确分层,每一层实现其中一个或一组功能,功能中有上层可以使用的功能——服务

本层协议实体相互执行本层的协议动作,实现本层功能,通过接口为上层提供更好的服务

利用下层提供的服务,实现本层协议

本层的服务,借助下层服务实现的本层协议实体之间交互带来的新功能+更下层所提供的服务

Internet协议栈

  • 应用层:网络应用
    • 为人类或其他进程提供网络应用服务
    • 如:ftp,smtp,http,dns
  • 传输层:主机之间的数据传输
    • 在网络层提供的端到端通信基础上,细分为进程到线程,将不可靠的通信变成可靠通信
    • 如:TCP,UDP
  • 网络层:为数据从源到目的选择路由
    • 主机到主机之间或端到端的通信,不可靠
    • 如:IP,路由协议
  • 链路层:相邻网络节点之间的数据传输
    • 两个相邻点的通信,可靠或不可靠
    • 如:PPP,802.11(wifi),Ethernet
  • 物理层:在线路上传输bit

应用层协议原理

网络应用的原理:

  • 网络应用协议的概念和实现方面
  • 传输层的服务模型
  • 客户-服务器模式
    • 可扩展性差
    • 可靠性差
    • 服务一直在线,等需要时直接访问,但想要扩展比较难
  • 对等模式(p2p)
    • 难以管理,任意节点之间都可以通信,每个节点都可以上线和下线,节点上线时告诉服务器已经上线
  • Napster(cs架构和p2p组合)
    • 各个节点上线时,告诉分发服务器已上线并说明自己所拥有的资源,当有客户想要访问资源时,请求服务器,服务器告诉客户,在哪个节点上有,客户再访问目标节点,获取资源
    • 经典例子:迅雷

进程通信

  • 进程:在主机上运行的应用程序
    • 在同一主机内,进程之前使用操作系统定义的进程间通信机制通信
    • 不同主机,通过交换报文进行通信

分布式进程通信需要解决的问题

  • 进程标识和寻址
  • 传输层-应用层提供的服务如何进行
    • 位置:层间界面的SAP
    • 形式:应用程序接口API
    • 每次传输都携带大量信息,繁琐不便于管理,使用socket本地标识双方的通信关系,TCP socket:源IP,源端口,目标IP,目标端口
  • 如何使用传输层提供的协议,实现报文交换

TCP:

  • 可靠,一般用于文件和邮件的传输协议
  • 流量控制:发送方不会淹没接收方
  • 拥塞控制:网络拥堵时,能抑制发送方
  • 时间保证,最小吞吐量保证和安全
  • 客户端和服务端之间需要建立连接

UDP:

  • 不可靠传输,一般用于音视频的传输

网络应用的实例:

  • 互联网流行的应用层协议
  • HTTP
  • FTP
    • 默认21端口
      • telnet默认23端口
      • web默认80端口
  • SMTP/POP3/IMAP
  • DNS

编程:

  • Socket API

web和HTTP

web:由一些对象组成,对象可以是HTML文件,图像 ,Java程序,音视频等

web页包含一个最基本的html文件,文件中会包含若干对象的引用

每个对象都通过url进行引用

url:通用资源定位符,由以下部分组成

  • 协议名
  • 用户
  • 口令
  • 主机名
  • 路径名
  • 端口

HTTP超文本传输协议

HTTP基于TCP协议,是不稳定的

用户和服务器的状态:cookies

​ 客户端第一次访问服务端,服务端创建一个新的cookies,存储在服务端,并给客户端返回cookies ,客户端再次访问时,携带cookies,就能建立长期连接

FTP

默认端口号为21

流程:

  • 客户端与服务器通过21端口联系,使用TCP协议
  • 客户端通过连接控制获得身份确认
  • 客户端通过连接控制发送命令浏览远程目录
  • 服务器收到文件传输命令时,服务器打开数据连接
  • 文件传输完成后,服务器关闭连接
  • 服务器会打开第二个TCP连接用于传输第二个文件
  • 服务器会维护用户的状态信息

Email

默认端口25

组成部分:

  • 用户代理
    • 第三方软件,又叫邮件阅读器,如outlook
  • 邮件服务器
    • 邮箱中管理和维护发给用户的邮件
  • 邮件传输协议:SMTP
    • 发送email报文

传输的三个阶段:

  • 握手
  • 传输报文
  • 关闭

DNS域名解析

为其他应用服务的应用,提供域名到ip地址的转换服务

IP地址用于标识网络上的地址,但是不便于记忆和使用,人们更加偏向于使用有意义的字符串来标识地址,于是IP地址和字符串的映射关系就很有必要

工作原理:

  • 分层命名
  • 分布式数据库

目的:

  • 主机名到IP地址的转换
  • 主机别名到规范名的转换
  • 负载均衡

域名分层:

如:www.baidu.com.cn ,从后往前看,每一个域管理其下的子域,也就是右边管理左边,域之间以点分隔,域的划分是逻辑的,不是物理的

TTL:time to leave 失效时间

P2P应用

集中化目录:在应用中存放资源目录,各个客户端又充当着服务器的角色,从而达到文件共享

完全分布式:

混合体:

CDN

上下文

多媒体传输方式:

  • CBR:以固定的速率编码
  • VBR:视频编码速率随时间的变化而变化

存储视频的流化服务:

之前是将视频整个下载完成之后再播放,时效性差,体验不好,所以流化,先下载一部分到缓冲区,下载完这一部分就开始播放,然后播放的同时下载后面的部分

视频流化DASH:智能地请求对应的资源

将视频均等切割为若干小块,每个小块以多种码率编码,根据下载的带宽以及其他情况,可以随时切换编码块,选择高码率下载还是低码率下载

cdn:网络内容分发

在全球部署很多缓存节点,将内容预先部署到缓存中,客户访问时,通过域名解析重定位找到离客户最近的缓存节点提供服务,解决客户群体较大,服务器和带宽限制问题

目的:让内容靠近客户

TCP套接字(socket)编程

TCP建立socket连接的流程:

  • 服务端创建welcomeSocket
  • 绑定本地IP和端口号
  • 建立connectSocket等待客户端的连接请求
  • 创建客户端的socket
  • 绑定客户端的IP和端口号
  • 指定服务端的IP和端口号
  • 客户端向服务器端发起连接请求
  • 服务器端应答,socket连接建立
  • 客户端发送

UDP套接字(socket)编程

udp建立socket连接的流程:

  • 服务器建立ServerSocket
  • 绑定本地的IP和端口号
  • 建立connectSocket等待客户端的连接请求
  • 创建客户端的socket
  • 绑定客户端的IP和端口号

概述和传输层服务

多路复用和解复用

发送方主机的多路复用:

从多个socket接收来自多个进程的报文,根据socket对应的IP地址和端口号等信息对报文段用头部加以封装(头部信息用以解复用)

接收方主机多路解复用:

根据报文段的头部信息中的IP地址和端口号将接收到的报文段发给正确的socket和对应的应用进程

UDP

用户数据报协议

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值