计算机网络-第二章笔记

  1. 两种常见的模式,C/S 和p2p
  2. 进程通过一种叫做套接字的软件接口发送报文和接收报文,开发者可以控制应用层次,但是对于传输层控制力缺乏,大约只能选择协议以及设定参数什么的。为了能够发送分组,我们需要1.IP地址2.端口号(相当于接收套接字的进程)
  3. 我们应该基于什么来选择运输层 协议?可靠数据传输(有确保数据交付的服务)吞吐量(特别是带宽敏感的应用),定时(指的是时延控制),安全
    TCP可以提供可靠数据传输会搭建起一个双工的TCP连接,并且可以拥塞控制(如果网络出现拥塞,将会抑制发送进程),利用ssl也可以实现安全性
    UDP的话不搭建连接(没有握手),不保证到达,不保证顺序,但是没有拥塞控制,因此可以以选定的速率到达
    绝大多数都选择tcp,像网络通话什么的担心拥塞控制,因此会用udp

HTTP

  1. HTTP使用了TCP作为运输协议,是无状态协议
  • 在非持续连接的时候的http流程:客户端在端口号80发起一个tcp连接,经他的套接字发送HTTP报文,包含了路径名,服务器经套接字收到报文,检索,封装对象并通过套接字发送响应报文,服务器通知tcp断开连接(tcp会在确认收到响应报文的时候才会中断),http客户收到响应报文,关闭tcp连接,提取对象
  • 非持续连接会带来两个问题,1. 每一个对象都要有一个连接,因此需要分配TCP的缓冲区和变量,服务器负荷重 2. 因为TCP连接需要握手,因此发送一次对象,需要经历两个往返时间(RTT)的交付时延
  • 采用持续连接之后TCP连接打开,后续请求可以继续传送,尤其是一个页面上的对象什么的
  1. HTTP请求报文样式:第一行为请求行,后面为首部行,每一行都用回车换行(两个符号)来结束,首部之后,用单独的回车换行预示结束了首部(开始发送主体)
  2. 代理服务器的优点:减少响应时间(比如说瓶颈带宽远低于客户与代理服务器之间的瓶颈带宽的时候),减少流量(有一些请求可以直接返回,因此可以不用增加带宽,降低费用),典型例子就是CDN
    代理服务器可能会导致你的对象是旧的,因此引入了条件Get(首部行带有If-Modified-Since:

FTP

  1. FTP也是用TCP连接传输,与HTTP最显著的不同是,FTP用两个并行的TCP连接来传输,一个是控制链接(用于传输控制信息,包括口令,改变远程目录口令等)一个是数据连接(负责实际传输),因为FTP用独立的控制链接,因此是带外传输(HTTP是带内传输)
  2. 开始一个FTP会话,客户端现在21端口发起用于控制的TCP连接,当服务器收到文件传输命令后,就发起了一个到客户端的TCP连接,传输完成后会关闭连接,因此数据连接时非持续的,FTP必须时刻保留着状态

你可能感兴趣的:(计算机网络-第二章笔记)