web前端工程师必备知识:TCP/IP
2016-09-15 21:31
295 查看
1.OSI的7层参考模型
| 分层名称 | 功能概述 | 常见协议 |
7 | 应用层 | 针对特定应用的协议 | FTP,DNS,HTTP,SMTP等 |
6 | 表示层 | 负责数据格式的转换 | 不用协议 |
5 | 会话层 | 负责建立和断开通信连接 | 不用协议 |
4 | 传输层 | 负责可靠的数据传输 | TCP,UDP等 |
3 | 网络层 | 负责将数据传输到目标地址 | IP,ARP,RARP等 |
2 | 数据链路层 | 负责物理层面的互连,节点之间的通信传输 | 802.11,WIFI等 |
1 | 物理层 | 负责物理电路的比特流互换传输 | RS-443等 |
可归纳为TCP/IP协议族的四层模型中。
2.面向连接和面向无连接
面向连接:在通信传输前,需要先打开一个连接,连接关闭时是无法发送数据的。比如TCP。面向无连接:无需确认对端是否存在,发送端随时可以发送数据。
3.电路交换和分组交换
电路交换:如过去的电话网,独占线路资源,只有在上一个连接传输完毕之后才可以进行下一个连接。分组交换:将需要发送的数据分成多个数据包,按照一定顺序排列之后分别发送,可以提高线路利用率。
4.单播,多播,广播,任播
单播:一对一通信多播:特定组内的通信
广播:同一数据链路内的所有计算机
任播:特定组内的任意一台计算机
5.IP地址
Ip地址 = 网络地址 + 主机地址当主机地址部分全部设置为1时,就成为了该网络地址下的广播地址
6.TCP连接
TCP通过序列号与确认应答(ACK,用于指示希望下一次传输的序列号)提高可靠性。一次连接的简历与断开,正常过程需要来回发送7个包才能够完成;
“三次握手,四次挥手”
第一次握手:客户端发送SYN(请求建立连接)
第二次握手:服务器发送ACK(针对SYN的确认应答),发送SYN(请求建立连接)
第三次握手:客户端发送ACK(针对SYN的确认应答)
成功建立连接
第一次挥手:客户端发送FIN(请求切断连接)
第二次挥手:服务器发送给ACK(针对FIN的确认应答)
第三次挥手:服务器发送FIN(请求切断连接)
第四次挥手:客户端发送ACK(针对FIN的确认应答)
7.关于UDP
UDP不提供和TCP一样的复杂的控制机制,利用IP提供面向无连接的通信服务在网络拥堵的情况下,UDP无法进行流量控制等避免网络拥塞的行为,此外,传输途中即使丢包,UDP也不会负责重发,甚至当包到达的时候也不会去纠正是否错误;
适用场景:
A.包总量较少的通信(DNS,SNMP等)
B.视频,音频等多媒体通信(即时通信)
C.限定于LAN等特定网络中的应用通信
D.广播通信(广播,多播)
8.关于SOCKET通信
socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求服务器:监听指定的端口,等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。
客户端:使用Socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket。
相关文章推荐
- 网络知识必备关于TCP/IP 安全问题转载
- TCP/IP 和HTTP 协议基础知识
- 详细解读.Net Micro Framework中的TCP/IP通信知识
- 从本科知识开始Java、TCPIP、Socke…
- TCP/IP笔记(一)网络基础知识
- TCP/IP 和 HTTP不了解?看完这篇文章,网络知识就全懂了
- 复习基础知识之 TCP/IP, HTTP, Socket
- TCP/IP_网络基础知识
- TCP/IP的基本概念知识
- Linux 小知识翻译 - 「TCP/IP」
- TCP/IP入门知识——网络访问层
- TCP/IP 相关知识回忆总结
- TCP/IP基础知识
- TCP/IP学习基础知识
- TCP/IP编程 - 1) 基础知识
- tcp/ip基础知识
- Linux下的socket编程实践(一) 网络基本知识以及 TCP/IP简述
- 关于TCP/IP基础知识的梳理
- tcp/ip基础知识(ip隧道、OSI模型,IEEE802.11)