"路漫漫其修远兮 吾将上下而求索".
OSI模型基本没有什么实际功效,所以就不详细理解了,作为理论模型视乎还是可以借鉴的。直接从TCP/IP四层模型开始。
各个层的主要协议一览。
HTTP(Hyper Text Transfer Protocol):超文本传输协议
FTP(File Transfer Protocol):文件传输协议
TELNET:远程登录协议
SMTP(Simple Mail Transfer Protocol):简单邮件传输协议
POP3(Post Office Protocol - Version 3):第3版邮局协议
IMAP(Internet Mail Access Protocol):Internet邮件访问协议
RIP(Routing Information Protocol):路由信息协议
TFTP(Trivial File Transfer Protocol):简单文件传输协议
SNMP(Simple Network Management Protocol ):简单网络管理协议
NTP(Network Time Protocol):网络时间协议
NFS(Network File System):网络文件系统
TCP(Transmission Control Protocol ):传输控制协议
UDP(User Datagram Protocol):用户数据报协议
IP(Internet Protocol):网络协议
ICMP(Internet Control Message Protocol):网络报文段控制协议
IGMP(Internet Group Management Protocol):网络组管理协议
- 应用层:顾名思义嘛,就是我们使用的各种应用的那一层,比如浏览器,邮箱,FTP下载工具,远程登录工具等等。而每一种应用都需要与服务器里的一个服务进程进行交流,如果把各种应用当做不同语种的人类,而每个服务进程也都是语种不通的人类,当"浏览器"这个人要与服务器上的一个叫“80”端口的人进行交流的时候,发现,哎哟我去,淫家听不懂咋办?然后“浏览器”发现“80”原来懂得“HTTP协议”这种语言啊,我也懂呀,然后就非常高兴的用“HTTP协议”去和“80”端口进行愉快的交(Pa)流(Pa)了。。。
小结:应用层其实就是两个通信进程之间的交流,发送报文,而两个进程间交流的时候如果要弄明白彼此之间的意思(报文)就需要借助某种协议了。如浏览器和web服务器要借助HTTP协议,邮箱与邮箱服务器需要SMTP(发送),IMAP,POP3(接收)等协议,而FTP下载上传工具则需要FTP协议等等。
工作模型:C/S, P2P, 混合模型。
-运输层:好了,应用层里的小伙伴“浏览器”用HTTP协议写好了一封信(报文),想要发送出去,于是就找到了运输层里的小伙伴,让它帮忙把信发出去,然后还特意嘱咐了一下,信千万不要弄丢了!里面有两张纸,不要弄缺了!然后是第一张纸一定要先到“80”的手上,然后才是第二张。运输层小伙伴在心里嘀咕了一下“哼,真啰嗦,要求还这么多!”。然后说到“那我给你用TCP吧,这个安全可靠,符合你的要求,不过速度有点慢哦”。于是运输层小伙伴就熟练的在信封上贴上了一个TCP标签,标签上写了一些源端口,目的端口等相关的信息。(添加TCP首部,形成报文段)。
小结:两个应用进程在通信的时候并不关心数据是怎么传到对方的,A老板(应用层)写好了一封信要发给B老板,交给秘书(运输层)去送,然后秘书根据老板的要求用自己的方式(TCP,UDP)将信交到B老板的秘书手上。A老板只要等候秘书把回信送回来即可。
[TCP](Transmission Control Protocol):为应用层协议提供面向连接的,可靠的传输服务,提供流量控制,拥塞控制,全双工通信,面向字节流。
UDP(User Datagram Protocol):是无连接的,不可靠,但是高效的传输服务,速度远比TCP的快,但是容易丢失数据。只提供应用进程寻址和简单的差错检测。
网络层:运输层决定好了运输方式(TCP,UDP)以后,将信送到到目的地有许多的路可以走,网络层的主要任务就是挑选一条合适的路径,IP协议的主要功能就是为IP数据报选路,转发IP数据报到目的地。
网络层接收运输层的报文段(TCP报文段或UDP数据报)后添加一个首部,形成IP数据报,在网络层将IP数据报传递给下一层(数据链路层)的时候会根据情况将IP数据报进行分组。
IP协议网络接口层:这一层似乎比较抽象,TCP/IP模型中并没有明确的描述,只是指出主机要使用某种协议与具体的网络连接,能够传递IP数据报。要具体讨论的话,可以用OSI模型的数据链路层和物理层作为参考。