因为面试要问!!!
作为一个编程工作者,我们不光要开发出优秀的程序,也要让别人看到我们的成果,也就是说我们要向别人分享,当然不是说要像发传单那样一个个的来,我们可以借助互联网,让活在地球上的每一个人都有机会看到我们的杰作,所以我们就学习网络相关的知识,而TCP/IP协议作为网络协议的集合,我们有什么理由不去知道呢?
有的人将此协议误会成TCP、IP协议,其实这两个完全是不同的概念。那么什么是TCP/IP协议呢?其实我也说不明白,那么我们就言简意赅的说它是 只要与互联网相关的协议,我们就把它们统称为TCP/IP协议,也可以叫它协议族。
既然是一个庞大的协议集合,那我们就应该将它分成几块去了解,事实上也是如此。 TCP/IP协议按层次分的话,分别为: 应用层、传输层、网络层、接口层,至于每层具体的内容,根据需求去掌握。
IP协议也叫因特网协议,他的作用就是为了传输数据给对方,也可以理解为传输数据前的制定的规则
APR协议也叫地址解析协议, 可以通过对方的ip地址反查出对应的 MAC 地址。
DNS也叫域名解析协议,提供域名到 IP 地址之间的解析服务。
是面向一种无连接的协议,不需要向TCP那样建立连接发送数据,而是直接通过对方ip端口发送,只负责去发送消息,也就说一股脑的丢给对方,然后自己甩甩屁股走人,对于对方是否接收一概不管。
UDP 不止支持一对一的传输方式,同样支持一对多,多对多,多对一的方式,也就是说 UDP 提供了单播,多播,广播的功能。
如果网络环境很差,那么发送数据的过程中很有可能出现问题,对于UDP这种只管发的方式来说,丢包是很有可能的
依照不可靠性来说,凡事都有两面性,因为UDP不需要建立连接所以就发送效率就很快,例如IP电话、视频会议、直播等。
是一种面向有连接的安全、可靠协议,因为两台电脑相互之间要进行通讯的时候,首先要确定环境是否允许,所以会先通过三次握手建立传输通道,再通过四次挥手表明双方通讯结束这一过程,为数据的可靠性打下基础。
略
如果对方没有确认收到消息,会定时发送请求确认
根据对方接收能力来将数据分割成一小块一小块去传输
每一次建立连接之后,只要完成任务就断开
每一次建立连接之后,不管有没有任务,都保持连接通畅,直到双方中有一方退出,大多数为客户端那方。