[TOC]
目标:
- 设计原因
- 优缺点
- 网络设计原则:
- 分层、封装、数据包交换
- 什么是互联网
- 什么是ip
- 网络、Skype、bittorrent工作方式
- 4层网络
- 绝大多数应用使用TCP(传输层)
- Internet分包传输
1.1-网络应用程序
Byte-Stream Model
双方都可以同时读写,任意一方都可以关闭连接

WWW(HTTP)
http://表示采用http协议
一般是get请求,服务器会因此返回一个网页的文件
BitTorrent
将文件分成几个区块,订阅同一个文件的群组会分到不同的区块,然后就可以互相分享文件了

Skype
都在公网
几乎没什么区别

一个在私网
NAT里面的是私网,公网无法访问。

Skype会使用一个服务器能连到B,然后服务器会告诉B:A在call你,然后AB建立连接

都在私网
AB都在私网,A不能call B,B不能call A
Skype使用Relay(中继器),连上AB,然后转发AB之间的消息

1.2-四层互联网
从上到下四层:
- 应用层
- 传输层
- 网络层
- 链接层(链路层)
链路层的工作是将数据在网络上的节点上传输。

网络层:作用是将数据包传输到目的地,端到端,相当于填写了邮件的寄件人和收件人

网络层将数据交给链路层,相反的链路层为网络层服务

IP不保证数据到达,传输层会保证数据正确传输。最常见的是TCP,现在HTTP3使用QUIC协议了
TCP保证数据按顺序到达
如果用户不需要可靠的传输,可以使用UDP
应用层:成千上万的应用,使用TCP/UDP的API。比如说qq微信浏览器,邮件
IP是不得不用的,这也是为啥IPv6可能永远无法取代IPv4的原因

1.3-IP服务模型
对于很多人来说,IP就是Internet
IP由IPdata 和 IPHeader组成,当传输层是要传输数据时,传输层会把数据包进IPData里面,IP协议会尝试通过路由器等传到目的地

IP特性
- 数据报:要发数据时,就创建一个包
- 不可靠:可能送不到,可能超时,可能乱序
- 尽力:不会故意坑你
- 无连接:每个数据包相互独立
- 细节:
- 不会循环,不会再一直转圈圈。IPheader里面由一个跳数,每传一次减去1当变成0时会被丢弃。
- 太大会切割
- 有checksum判断数据有没有被篡改
- 带版本:IPv6,IPv4
- 允许新功能放到头部
