TCP/IP 四层协议
链路层:通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆的的物理接口细节。
网络层:处理分组在网络中的活动,例如分组在网络中的选路。包括IP协议,ICMP协议,IGMP协议。
运输层:主要为应用上的程序提供端到端的通信。TCP传输控制协议和UDP用户数据报协议。TCP提供可靠数据传输,确认收到的分组,设置发送最后确认分组的超时时钟。UDP提供简单服务,只把称做数据报的分组从一台主机发送到另一台主机,并不保证该数据报一定到达另一端,这时候需要应用层的可靠性保证。
应用层:负责处理特定的应用程序细节。几乎各种不同的T C P / I P实现都会提供下面这些通用的应用程序:Telnet远程登录,FTP文本传输协议,SMTP简单邮件传送协议,SNMP简单网络管理协议。
可靠的TCP与不可靠的IP
TCP 采用了超时重发,发送和接收端到端的确认分组机制。如果丢包会通知发送方,我没收到消息,请重新发送,那么发送方就会再发一次消息。
IP 只负责尽快把分组送到终点,它不关心里面的内容。
TCP 和IP 就相当于是淘宝的卖家和买家与快递员之间的关系,买家没收到货,卖家会重新发送一次,而对于快递员来说,它只负责传送,不知道第一次和第二次传送的内容是相同的。
路由器和网桥
网桥/交换机:工作在数据链路层,用于连接不同的网络。网桥/交换机会在自身存储其硬件端口与MAC地址的映射关系。一般使用网桥/交换机隔离LAN。简单来说,网桥可以看做一个端口数少的交换机。
路由器:工作在网络层。用于连接不同网络,进行分组转发。区别在于,网桥/交换机根据MAC转发,路由器根据ip进行转发。
封装与分用
封装:应用程序发送的消息经过各层协议栈,不断加上首部信息或者尾部信息。
分用 Demultiplexing:当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部。