네트워크 기초 다지기

YJS·2023년 10월 23일
0

🤓오늘의 공부 주제: OSI 7계층, TCP/IP, UDP, 3-way handshake🤓

Q. OSI 7계층과 TCP/IP 4계층이란 무엇인가?

A. OSI 7계층은 네트워크 통신을 표준화한 모델로, 통신 시스템을 7단계로 나누어 설명한 것.그러나 OSI 모델이 실무적으로 이용하기에 복잡한 탓에 실제 인터넷에서는 이를 단순화한 TCP/IP 4계층이 사용되고 있음.

각 계층은 하위 계층의 기능을 이용하고 상위 계층에게 기능을 제공. 일반적으로 상위 계층의 프로토콜은 소프트웨어로, 하위 계층의 프로토콜은 하드웨어로 구현된다.


사용자의 입장에서는 data가 그냥 전송되는 것처럼 보이지만 캡슐화와 역캡슐화 과정을 통해 전달된다.
사용자가 전송하고자 하는 데이터는 각 프로토콜의 정보를 Header에 포함시켜서 하위 계층에 전달(캡슐화)하고 최종적으로 물리 계층에서 바이너리 데이터로 변환되어 전송된다.
상대측에서는 이러한 헤더를 역순으로 하나씩 제거하면서 상위 계층으로 데이터를 전달하고(역캡슐화) 최종적으로 원본 데이터를 수신하게 된다.

TCP/IP는 인터넷에서 사용하는 프로토콜 그룹을 칭한다. TCP/IP는 Application layer(응용계층), Transport layer(전송계층), Network layer, Data link layer, Physical layer로 5개의 계층으로 나뉜다.

그 중에 전송계층은 두 응용 계층 사이에서의 process-to-process 통신을 제공. 전송계층은 응용계층으로부터 메시지를 받아 전송계층 패킷으로 캡슐화하여 전송한다.

전송계층의 주된 프로토콜은 TCP, UDP입니다. TCP(Transmission Control Protocol)는 연결형, 신뢰성 전송 프로토콜이며 TCP로 전송하는 패킷을 segment라고 부른다. UDP(User, Datagram Protocol)는 비연결형, 비신뢰성 전송 프로토콜이며 UDP로 전송하는 패킷을 datagram이라고 한다.

Q. TCP vs UDP의 차이점은 무엇인가?

A.TCP는 연결형, 신뢰성 전송 프로토콜. 연결지향적 서비스를 제공하기 위해 데이터를 전송하기 전에 3way handsaking을 하여 두 호스트의 전송 계층 사이에 논리적 연결을 설립하며 신뢰성 있는 서비스를 제공하기 위해 오류제어, 흐름제어, 혼잡제어 등을 실행한다. 신뢰성을 보장하기 위해서 header가 더 크고 속도가 비교적 느리다는 단점이 있음. 그러나 UDP는 비연결형 프로토콜로 3-way handshake 등의 세션 수립 과정이 없다. 또한 비신뢰성 프로토콜로 흐름제어, 오류제어, 혼잡 제어를 제공하지 않는다. 이러한 단순성 덕분에 적은 양의 오버헤드갖고 수신여부를 확인하지 않아서 속도가 빠르다

TCP는 신뢰성이 중요한 통신(HTTP, File 전송 등)에 쓰이고, UDP는 실시간성이 중요한 통신(동영상 스트리밍 등)에 주로 사용된다.

Q. 3-way handshake란 무엇인가?

A.3-way handshake는 TCP/IP 프로토콜로 통신하기 전, 정확한 정보 전송을 위해 상대방 컴퓨터와 세션을 수립하는(연결을 하는) 과정. 즉 TCP연결 최기화 작업을 일컫는다.

클라이언트가 서버에게 접속을 요청하는 SYN 패킷을 보내면, 서버는 요청을 수락하는 ACK를 포함하여 SYN+ACK 패킷을 클라이언트에게 발송한. 클라이언트가 이것을 수신한 후, 다시 ACK를 서버에게 발송하면 연결이 이루어지고, 이로써 데이터를 주고받을 수 있게된다.

🤓3 way handshake 단계🤓
1. Connection setup (tcp 연결 초기화) - 3way handshaking
2. Data transfer (데이터 전송)
3. Connection termination (tcp 연결 종료) - 4way handshaking

Q. 4-way handshake란 무엇인가?

A.3-way handshake를 통해 Connection setup을 했다면 tcp 연결을 종료하는 Connection termination 과정은 4-way handshaking을 통해 이루어진다. TCP connection termination은 양방향으로 2개의 연결이 독립적으로 닫히기 때문에 4-way 단계를 밟게 된다.

출처 : 인프런 - 기출로 대비하는 개발자 전공면접 [CS 완전정복]

profile
우당탕탕 개발 일기

0개의 댓글