컴퓨터상식/네트워크,통신

프로토콜(Protocal)과 소켓(Socket)

soultreemk 2022. 7. 25. 10:11

프로토콜 정리

OSI 7 Layer Model

7계층. Application Layer

6계층. Presentation Layer

5계층. Session Layer

4계층. Transport Layer

3계층. Network Layer

2계층. DataLink Layer

1계층. Physical Layer

 

TCP/IP 프로토콜(Protocal)

4계층. Application - OSI 5,6,7 Layer

- telnet, FTP, DHCP, TFTP, HTTP, SMTP, DNS, SNMP

3계층. Transport - OSI 4 Layer

- TCP, UDP

2계층. Internet - OSI 3 Layer

- ICMP, ARP, RARP, IP

1계층. Network Interface - OSI 1,2 Layer

 

TCP/IP 프로토콜과 OSI 7 계층 모델과의 관계

TCP/IP:4계층 - OSI:7,6,5계층

TCP/IP:3계층 - OSI:4계층

TCP/IP:2계층 - OSI:3계층

TCP/IP:1계층 - OSI:2,1계층

 

프로토콜(Protocal) 구조

여기서 자주 들었던 프로토콜의 주요 특징만 살펴보자.

IP

- 패킷을 분할 및 재조립함

- 수신할 상대 주소를 지정함

TCP

- Stream 방식

- 양방향 통신

- 연결성, 순서, 신뢰성이 있음

UDP

- Datagram 방식

- 양방향 연결이 필요 없음

- 속도를 우선으로 연결성, 순서, 신뢰성이 없음

HTTP

- TCP와 IP(TCP/IP) 프로토콜 위에서 동작하는 응용 계층의 프로토콜

- 웹상에서 주로 HTML문서를 주고받는데 쓰임

- 클라이언트/서버 사이에 요청(request)/응답(response) 통신

 

 

소켓 정리

다음으로 소켓이 무엇인지 살펴보자.

보통 네트워크에서 다루는 소켓은 인터넷 소켓(network socket)을 말하는 듯 하다. 따라서 아래 내용의 소켓은 인터넷 소켓으로 해석하면 된다.

 

소켓의 유형으로 보통 TCP/IP와 UDP/IP가 있다.

TCP/IP 프로토콜 기반의 Stream 방식

- 양방향 연결

- 데이터의 신뢰성 보장(소실, 변형, 순서 보장)

- 한개의 패킷을 여러개로 나누어 받거나 여러개의 패킷을 하나로 받을수 있으므로 별도의 처리가 필요함

UDP/IP 프로토콜 기반의 Datagram 방식

- 양방향 연결이 필요 없음

- 데이터 소실일 발생 될수 있음

- 데이터 소실의 이유가 다양해 예측하기 어려움

- 먼저 보낸 데이터보다 늦게 보낸 데이터를 먼저 받을 수도 있음

- 한개의 데이터를 여러개로 분할없이 받을 수 있음

 

소켓 통신 과정(전화통화와 유사함)

발신자(클라이언트) : 소켓 생성 -----------------------------------> 연결 -------> 통신 -> 소켓 닫기(연결 끊기)
수신자(서버)           : 소켓 생성 -> IP주소 및 포트 할당 -> 연결 대기 -> 연결의 승인 -> 통신 -> 소켓 닫기(연결 끊기)

소켓 통신 

1. server 소켓 생성과 listen(이벤트)

2. connect을 위한 client 소켓 생성

3. client 소켓에서 server 소켓으로 메시지 전송

4. server에서 새로운 소켓 생성 후 처리

5. server 소켓에서 client 소켓으로 메시지 전송

6. 소켓 Close(소켓 닫기)

 

결과

정리한 내역으로 보면

회의에서 나온 "프로토콜은 소켓(Socket) 으로 하시면 되요"라는 말은 다음과 같이 해석 할 수 있다.

소켓은 일반적으로 Transport 계층에 속해있는 TCP 프로토콜을 말한다.

 TCP/IP 프로토콜 기반의 소켓 방법으로 진행을 한다.

라고 알아들으면 될듯하다.