OSI 7계층, TCP와 UDP
오늘은 네트워크와 관련된 질문이다 :)
OSI 7 Layer를 1계층부터 7계층까지 순서대로 말하시오
OSI 7 Layer
네트워크 프로토콜 디자인과 통신을 7계층으로 나눠서 표현한 것.
계층 | Layer | 설명 | 예시 |
7 | Application | 최종 목적지. 응용 프로세스와 직접 관계해 일반적인 응용 서비스를 수행함. 사용자 인터페이스, 전자우편, 데이터베이스 관리 등의 서비스를 제공 | HTTP, FTP, DNS 등 |
6 | Presentation | 데이터 표현에 대한 독립성을 제공하고 암호화하는 역할을 담당. 코드 간의 번역을 담당해 사용자 시스템에서 데이터의 형식 차이에 대한 부담을 Application Layer로부터 덜어줌. 파일 인코딩, 명령어를 포장/압축/암호화 함 | JPEG, MPEG, SSL 등 |
5 | Session | 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공. 동시 송수신 방식 (duplex), 반이중 방식(half-duplex), 전이중 방식 (full-duplex) 등의 데이터가 통신하기 위한 논리적 연결을 담당. TCP/IP 세션을 만들고 없애는 책임을 짐 | API, Socket |
4 | Transport | TCP, UDP 프로토콜을 통해 통신을 활성화. 포트를 열어두고, 프로그램이 전송을 할 수 있도록 제공함. 이를 통해 양 끝단의 사용자가 데이터를 주고받을 수 있음. | TCP, UDP |
3 | Network | 여러 개의 노드를 거칠 때마다 경로를 찾아주는 역할. 다양한 길이의 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능을 담당함. 라우터를 통해 이동할 경로를 선택해 IP 주소를 지정하고, 해당 경로에 따라 패킷을 전달함. 라우팅, 흐름제어, 오류 제어, 세그먼테이션 등 수행. | 라우터, IP |
2 | DataLink | 물리 계층을 통해 송수신되는 정보의 오류/흐름을 관리해 안전한 정보를 전달할 수 있도록 도와주는 역할. Frame에 MAC 주소를 부여하고 에러검출, 재전송, 흐름 제어를 진행. | 브릿지, 스위치, 이더넷 등 |
1 | Physical | 통신 케이블로 데이터를 전송하는 역할 | 리피터, 케이블, 허브 등 |
TCP와 UDP의 차이점에 대해 말하시오
TCP
- 일반적으로 TCP와 IP를 함께 사용하는데, IP가 데이터의 배달을 처리한다면 TCP는 패킷을 추적/관리 한다.
TCP(Transmission Control Protocol, 전송제어 프로토콜)
는 연결형 프로토콜이다.3-way-handshake
를 통해 수신 여부를 확인해 신뢰성이 높은 대신 속도가 느리다.- 데이터의 전송 순서를 보장한다.
- 패킷에 번호를 부여해 패킷의 분실을 확인한다.
- 송신 측에서 패킷을 번호 순으로 재조립할 때, 맞지 않으면 데이터 분실 신호를 보내고 데이터를 다시 받는다.
- 참고) 오류 제어
4-way-handshake
로 연결을 해제한다.- 멀티 캐스팅이나 브로드캐스팅을 지원하지 않는다.
- 웹 HTTP 통신, 이메일, 파일 전송에 주로 사용된다.
Packet(패킷)
인터넷에서 데이터를 효율적으로 보내기 위해 데이터를 여러 개의 조각으로 나눠 전송하는데, 이 때 이 조각을 패킷이라고 함.
UDP
UDP(User Datagram Protocol, 사용자 데이터그램 프로토콜)
는 비연결형 프로토콜이다.- 수신 여부를 확인하지 않아 신뢰성이 낮은 대신 속도가 빠르다.
- Real Time Protocol, Multicast, DNS 등에서 사용한다.
TCP와 UDP의 차이를 표로 정리해보면 아래와 같다.
- | TCP | UDP |
연결 방식 | 연결형 | 비연결형 |
패킷 교환 방식 | 가상회선 | 데이터그램 |
전송 순서 | 전송순서보장 | 전송순서보장X |
수신 여부 확인 | 확인함 | 확인하지 않음 |
통신 방식 | 1:1 | 1:1/1:N/N:N |
신뢰성 | 높음 | 낮음 |
속도 | 느림 | 빠름 |