虽然是按从简单到难得顺序讲的,但是会比较乱
历史介绍
为什么OSI比TCP牛到现在还是全世界在用TCP/IP协议呢
ISO发展这个OSI标准发布的时候已经是
1984 年了这个时候全世界已经发展了TCP/IP模型。
TCP/IP模型的成功主要有几点:
1、TCP/IP是基本上是不收钱的。
2、TCP/IP和UNIX结合在了一起,并推出了socket的编程的API接口。
3、发布时间比OSI快了几年。
TCP和IP的简单的区别
TCP和UDP里面,TCP讲的是连接时谁发起的,UDP讲的是报文是谁发送的。
其他小知识
无论是TCP还是UDP,无论是客户端还是服务器,他们的运行单位是进程,而不是机器,这点要注意。
端口号是一个 16 位的整数,最多为65536。是因为2的16次方,端口号是16位的,位只有1和0。
一个连接可以通过客户端 - 服务器端的IP 和端口唯一确定,这叫做套接字对,按照下面的四元组表示:
(clientaddr:clientport,serveraddr: serverport)
子网掩码:
有三种类型的网络嘛,就三种子网掩码:255.0.0.0 ; 255.255.0.0 ; 255.255.255.0
DNS就是记录www.baidu.com和它的IP的对应关系,就是专门记载IP和域名对应的服务器来的。
TCP,又叫做字节流套接字(streamSocket)
UDP, 叫数据报套接字(DatagramSocket)
UDP 有时又叫无连接的sockets。虽然这样讲好像TCP是像电话一直连接的一样,但实际不是电话那样,还是要通过数据来知道对面的情况的,如果tcp连接通了一直没有数据的话,是不知道对面是死是活的。
浏览器浏览网页啊,手机浏览网页啊,都是使用TCP的,而UDP也有很大的场景使用,如:多人联网协议,视频会议,聊天室等很多都是使用NTP或者UDP,而NTP就是用UDP实现的,DNS也有使用UDP的。
使用UDP的原因只有一个,就是速度
还有就是多播、群播也是选择UDP比较合适的。
UDP也可以做到TCP得到可靠性,不过是在应用程序进行设计处理,不过还是会和TCP有一点差距的