socket,tcp/ip以及http

之前使用thrift感觉用的还是糊里糊涂,好多基本概念搞不清楚,这里针对socket,http,tcp/ip进行一个学习
http协议我是比较了解的,这里主要介绍scoket
socket是什么:socket的意思是插座,计算机通信领域被翻译为套接字,是计算机之间进行通信的一种约定或者一种方式。是基于tcp/udp协议的直接使用。通过socket约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据,socket是用来连接到因特网的工具
既然socket是基于tcp/udp协议,那就主要分为两种套接字。
套接字
internet 套接字,主要分为两个
面向连接的套接字:
格式流套接字 基于tcp协议
无连接的套接字:
数据报格式套接字 基于udp协议

TCP/IP 模型:
从下到上分别是接口层、网络层、传输层和应用层,
socket编程是基于传输层的基础上,可以使用tcp/udp协议,但是不能干访问网页的事情,因为访问网页需要http协议应用于应用层
两台计算机进行通信时,必须遵守以下原则:
必须是同一层次进行通信,比如,A 计算机的应用层和 B 计算机的传输层就不能通信,因为它们不在一个层次,数据的拆包会遇到问题。
每一层的功能都必须相同,也就是拥有完全相同的网络模型。如果网络模型都不同,那不就乱套了,谁都不认识谁。
数据只能逐层传输,不能跃层。
每一层可以使用下层提供的服务,并向上层提供服务。

  • ip,mac,端口——如何在茫茫人海找到你
    在茫茫的互联网海洋中,要找到一台计算机非常不容易,有三个要素必须具备,它们分别是 IP 地址、MAC 地址和端口号。
    ip标识一个局域网,mac地址唯一标识一台计算机,计算机出厂时,mac地址已经被写死到网卡里面了,请求返回时除了会附带对方的ip地址外,还会附带对方的mac地址,当数据包到达局域网后,路由器会根据数据包中的mac地址找到对方的计算机有了 IP 地址和 MAC 地址,虽然可以找到目标计算机,但仍然不能进行通信。一台计算机可以同时提供多种网络服务,例如 Web 服务(网站)、FTP 服务(文件传输服务)、SMTP 服务(邮箱服务)等,仅有 IP 地址和 MAC 地址,计算机虽然可以正确接收到数据包,但是却不知道要将数据包交给哪个网络程序来处理,所以通信失败。

你可能感兴趣的:(socket,tcp/ip以及http)