728x90

UDP(User Datagram Protocol)는 연결이 없는 프로토콜로, 데이터 전송이 빠르지만 신뢰성은 낮다. 실시간 비디오 스트리밍, 온라인 게임 같은 상황에서 적합하다. TCP와 달리 1:1 or 1:n or n:m 통신이 가능하다.

 

UDP는 소켓 대신 IP를 기반으로 데이터를 전송하고, 데이터그램 단위로 전송되며, 그 크기는 65535바이트로, 크기가 초과하면 잘라서 보낸다. 흐름제어가 없어서 패킷이 제대로 전송되었는지, 오류가 없는지 확인할 수 없다. CheckSum 필드를 통해 최소한의 오류만 검출한다.

 

TCP/IP(Transmission Control Protocol/Internet Protocol)는 연결 지향적이며 데이터 전송이 신뢰성 있고 순서대로 이루어진다. 예를 들어, 웹 페이지 로딩, 이메일 전송 같은 작업에 사용된다. UDP와 달리 1:1 통신만 가능하다.

 

TCP/IP는 패킷 교환 방식과 전이중(Full-Duplex)과 점대점(Point to Point) 방식을 사용한다. 그리고 3-way handshaking을 통해 연결하고, 4-way handshaking을 통해 연결을 해제한다.

 

3-way handshaking:

3-way handshake는 두 장치 간에 안정적인 연결을 설정하는 데 사용되는 프로세스다. 데이터를 전송하기 전에 양쪽이 통신할 준비가 되었는지 확인한다.

 

  1. SYN(Sychronize): 연결을 시작하는 장치는 SYN 플래그가 설정된 패킷을 보낸다. 이 패킷에는 장치가 보내는 데이터 패킷의 순서를 추적하는 데 사용할 시퀀스 번호가 포함된다.
  2. SYN-ACK(Synchronize Acknowledge): 수신 장치는 SYN 및 ACK 플래그가 설정된 패킷으로 응답한다. ACK 플래그는 수신된 SYN 패킷을 확인하고 자체 시퀀스 번호를 포함한다.
  3. ACK(Acknowledge): 연결을 시작하는 장치는 수신된 SYN-ACK 패킷을 확인하는 ACK 플래그가 설정된 최종 패킷을 보낸다.

 

4-way handshaking:

 

4-way handshake는 연결을 종료하기 전에 양쪽이 데이터 전송을 완료했는지 확인한다.

 

  1. FIN(Finish): 한 장치는 더 이상 데이터를 보낼 수 없음을 나타내는 FIN 플래그가 설정된 패킷을 보낸다.
  2. ACK(Acknowledge): 다른 장치는 ACK패킷으로 FIN패킷을 확인한다.
  3. FIN(Finish): 수신 장치는 자체 FIN패킷을 보내 더 이상 데이터를 보낼 수 없음을 나타낸다.
  4. ACK(Acknowledge): 연결을 시작하는 장치는 수신된 FIN 패킷을 ACK 패킷으로 확인한다.

 

패킷의 전송 과정은 이렇다.

  1. 응용 계층: 브라우저는 HTTP 요청 메시지를 생성한다.
  2. 전송 계층: TCP 프로토콜은 HTTP 요청 메시지를 헤더와 데이터로 분할하고, 각 부분을 패킷에 담아 전송한다.
  3. 네트워크 계층: IP 프로토콜은 각 패킷에 목적지 IP 주소를 추가하고, 라우팅 테이블을 참고하여 최적의 경로를 선택하여 전송한다.
  4. 데이터 링크 계층: MAC 주소를 기반으로 패킷을 목적지 장치로 전송한다.
  5. 물리 계층: 전기 신호 또는 광 신호로 변환하여 전송한다.

 

패킷의 헤더 정보는 송신지 IP 주소, 목적지 IP주소, 프로토콜, 포트 번호, 데이터 길이, 체크섬이 있다.

 

OSI 7 계층은 네트워크 통신에 있어서 표준화된 모델이다.

 

  1. 물리 계층(Physical Layer): 실제 전기적 신호를 전송하는 계층이다. 케이블, RJ45 등이 여기에 해당한다. 여기에 속하는 리피터, 허브에는 NIC, 고유 MAC 주소가 없다.
  2. 데이터 링크 계층(Data Link Layer): 네트워크 장비 간의 데이터 전송을 담당하며, MAC 주소를 사용한다. 이더넷, 스위치, Wi-Fi 등이 여기에 속한다.
  3. 네트워크 계층(Network Layer): 다른 네트워크 간의 데이터 전송을 관리하며, IP 주소를 사용한다. 라우터, IP, ARP가 여기에 해당한다.
  4. 전송 계층(Transport Layer): 두 장치 간의 데이터 전송을 책임지며, 신뢰성 있는 데이터 전송을 보장한다. TCP, UDP가 이 계층에 속한다.
  5. 세션 계층(Session Layer): 통신 장치 간의 세션을 관리한다. 세션 생성, 유지, 종료 등의 기능을 담당한다.
  6. 표현 계층(Presentation Layer): 데이터 표현 방식을 관리하며, 암호화와 압축을 담당한다. 예를 들어, ASCII, JPEG, MPEG 등의 데이터 형식이 여기에 해당한다.
  7. 응용 계층(Application Layer): 최종 사용자와 가장 가까운 계층으로, 사용자의 응용 프로그램이 네트워크 서비스를 사용할 수 있게 한다. HTTP, FTP, SMTP, DNS 등이 여기에 속한다.

NIC(Network Interface Controller)는 데스크탑이나 노트북에 RJ-45를 연결할 수 있는 포트와 연결된 하드웨어 장치이다.네트워크 어댑터, 이더넷 카드 등으로도 불리며, NIC에는 컴퓨터를 식별할 수 있는 고유 MAC주소가 있다. 이 MAC 주소는 제조업체에서 설정되며, 사용자가 변경할 수 없다. MAC 주소는 48비트 길이의 고유한 식별자로, 일반적으로 16진수로 표현된다. 예를 들어, 00:1A:2B:3C:4D:5E과 같은 형식이다.

 

NIC

 

이더넷(Ethernet)은 컴퓨터 네트워크 기술의 하나로, 전 세계적으로 가장 많이 사용되는 LAN(Local Area Network)기술이다. 이더넷은 최대 100Gbps 이상의 빠른 속도로 데이터를 전송할 수 있으며, 오류 감지 및 수정 기능을 통해 안정적인 데이터 전송을 제공한다. 이더넷은 다양한 케이블과 장비를 사용하여 확장할 수 있고, 다양한 제조업체의 장비가 서로 호환된다.

 

CSMA/CD는 네트워크에서 충돌을 감지하고 처리하는 방식 중 하나로, 이더넷과 같은 네트워크 환경에서 사용된다.

 

Carrier Sense (CS): 장비가 데이터를 전송하기 전에 먼저 물리적인 채널인 전송 매체(예: 케이블)을 감지한다. 이는 다른 장비가 이미 데이터를 전송 중이면 기다리는 것을 의미한다.

 

Multiple Access (MA): 다중 액세스는 여러 장비가 동시에 전송 매체에 액세스할 수 있는 능력을 말한다. 이는 네트워크에서 여러 장비가 동시에 데이터를 전송할 수 있어야 하는 상황에서 중요하다.

 

Collision Detection (CD): 충돌 감지는 데이터 전송 중에 충돌이 발생하는지 감지하고, 충돌이 발생하면 적절히 처리한다. 이는 두 개 이상의 장비가 동시에 데이터를 전송하여 데이터가 손상될 수 있는 상황에서 중요하다.

728x90

'네트워크' 카테고리의 다른 글

HTTP Method, REST API, DNS  (1) 2024.03.23
CDN(Content Delivery Network)  (2) 2024.03.22

+ Recent posts