- TCP는 Transmission Control Protocol의 약자로 트랜스포트 계층에서 “서버와 클라이언트 사이 통신 연결 제어”의 역할을 한다. “바이트 스트림”을 제공하는데 이때 “3way handshaking기법”을 사용한다. 요청이 제대로 전달이 되는지 확인한 뒤에 데이터를 보내기 때문에 “신뢰성”을 보장할 수 있다는 특징이 있다. 이후 TCP가 네트워크 계층으로 데이터를 보내는데, 이를 담당하는 것이 IP(Internet Protocol)이다. ARP(Adress Resolution Protocol)라는 주소 찾기 프로토콜이 주소를 찾을 때 IP를 사용하여 목적지를 정하는데, 이때 MAC 주소와 매칭하여 제대로 도착할 수 있도록 돕는다. 주의할 점은 송신 주소까지의 길을 찾을 때 IP주소를 메인으로 사용하는 것이 아니라 MAC 주소를 사용한다는 것이다. 인터넷 IP 주소는 계속 변하기 때문에 신뢰성에 문제가 생길 수 있기 때문이다. (ARP에 대해 추가 공부가 필요해 보인다.)
- IP는 IPv4와 IPv6 2가지 종류로 나뉜다. 보통 이야기하는 IP주소는 IPv4를 의미한다. IP version 4를 줄여 말하는 것으로 “32비트 방식”이다. 8비트씩 4자리로 나뉘며 온점으로 각 자리를 구분한다. 0부터 2의 32제곱 개의 주소를 나타낼 수 있지만 이마저도 고갈되어가기에 IPv6을 사용하기 시작했다. IP version 6을 줄인 말로, 32비트에서 128비트로 늘린 것으로 16비트씩 8자리로 구성되며 각 자리를 콜론으로 나눈다. 다만 이전에 사용하던 IPv4를 대체하는 비용 문제로 아직 완전한 상용화가 되지 않았다.
- HTTP는 Hyper Text Transfer Protocol의 약자로 “서버와 클라이언트간의 TCP/IP 통신 위에서 메시지를 교환하기 위해 사용되는 프로토콜”이다. 애플리케이션 계층, 트랜스포트 계층, 네트워크 계층, 링크 계층으로 구성되어 있는 TCP/IP 프로토콜로 통신을 하는 과정은 간단히 설명하면 4계층이 클라이언트와 서버에 각각 존재하여 클라이언트의 서버를 향한 데이터나 요청이 순서대로 계층을 내려갔다가 서버의 네트워크 계층부터 다시 올라가서 후에 서버에서 반환을 할 때, 다시 순서대로 계층을 내려갔다가 클라이언트의 네트워크 계층부터 다시 올라간다. 마침내 데이터가 애플리케이션 계층에 도착하면 사용자에게 정보가 나타나게 된다. HTTP는 “비연결성”과 “무상태성”의 특징을 가진다. 비연결성이란 계속해서 연결되어 있는 것이 아니라 한 번의 연결 후 요청과 응답의 과정을 거치면 연결이 종료되는 것을 말한다. 무상태성은 클라이언트의 상태를 쿠키나 세션 등에 보관할 뿐 프로토콜은 기억하지 않는 것을 의미한다. 이러한 특징으로 한 번에 들어오는 많은 요청을 처리하는 데 용이하고, 서버 부하 가능성을 낮출 수 있다는 장점이 생긴다.
- FTP는 File Transfer Protocol의 약자로 파일 전송을 위한 프로토콜이다. FTP도 TCP/IP 통신 위에서 돌아가며 대용량의 데이터를 빠르게 전송 가능하며 사용하기 편리하다는 장점이 있지만 노출의 위험이 있다. 21번 포트와 20번 포트를 사용하는데, 21번 포트는 제어 포트로, 연결을 기다리거나 시도하며 명령어를 전달한다. FTP를 사용하고 있으면 연결이 지속되고 단방향으로만 통신한다. 20번 포트는 데이터 포트이다. 데이터를 주고받으며 어떤 동작을 하느냐에 따라 포트가 바뀔 수도 있다. 액티브 모드는 20번, 패시브 모드일 때는 1024번 이상의 임의 포트를 사용한다. 파일인지, 데이터가 어떻게 짜여 있는지, 전송을 어떤 식으로 하는지에 따라 전송 데이터가 달라진다. 양방향 통신이 가능하고 사용하지 않으면 폐쇄된다는 특징이 있다. FTP의 보안 문제를 해결하기 위해 SFTP나 FTPS를 사용하길 권장한다.
- SMTP(Simple Mail Transfer Protocol)는 이메일을 사용하는 데 이용되는 프로토콜이다. 이 또한 TCP/IP 위에서 동작하며 25번 포트를 사용한다. 이메일은 MUA, MTA, MDA로 이루어져 있다. MUA(Mail User Agent)는 보낼 메시지를 쓰고 받은 메시지를 읽는 역할이고, MTA(Mail Transfer Agent)는 SMTP를 사용하여 메시지를 주고받는 서버이다. MDA(Mail Delivery Agent)는 최종 수신자의 메일함에 메시지를 전달하는 역할을 한다. 따라서 메일이 전달되는 과정을 MUA -> MTA -> 인터넷 -> MTA -> MDA -> MUA로 나타낼 수 있다. 처음에는 보안 기능이 없었지만 추후 SMTP 인증을 도입하고 SSL/TLS를 사용하면서 보안을 강화하게 되었다. 추가로 메일을 받고 메일함과 동기화할 때에는 POP3와 IMAP를 사용하게 된다. POP3는 서버에서 메시지를 받아 로컬에 저장하는 역할을, IMAP는 서버에서 메시지를 관리하는 역할을 한다.