Linux&OS

[네트워크] TCP/UDP, IP, DNS 간단 정리

Alex, Yoon 2022. 4. 5. 17:32

TCP, UDP 

우편과 등기로 비유 

TCP : 받는 사람이 받았는지 알 수 있다. (확인) 

UDP : 받는 사람이 받았는지 알 수 없다. (확인x)

TCP - 높은 신뢰성, 높은 연결성 

연결형 프로토콜 

전송속도가 느리다 

패킷관리가 필요 없다. 

데이터 순서 유지를 위해 데이터 각 바이트마다 번호를 부여함. 

데이터를 재전송한다. 

1대1 통신 (unicast) 

데이터 전달을 보증, 순서를 보장 (3-Way handshake)

흐름 제어 및 혼잡 제어

받는 사람의 환경을 인지한 채로 조절. - 흐름 제어 

네트워크 내 패킷 수가 과도하게 증가하는 것을 방지 - 혼잡 제어

UDP - 낮은 신뢰성, 스트리밍 서비스에 활용. 

비연결성 프로토콜이며, 연결 없이 통신이 가능.

비 신뢰적인 데이터를 전송. -> 데이터 재전송과 순서 유지를 위한 작업을 하지 않는다. 

1대1 통신, 1대다 통신, 다대다 통신 (TCP는 1대1 통신만 가능) 

전송속도가 빠르다. 

-> 즉 속도가 중요한 스트리밍 서비스에 사용. 

 

비연결형(port 만 확인하여 소켓을 식별하고 송수신)

패킷 오버헤드가 적어 네트워크 부하 감소 

비신뢰성 -> 신뢰도가 비교적 낮음 

오류검출(헤더에 오류 검출 필드를 포함하여 무결성 검사) 

TCP의 hand shaking 같은 연결 설정이 없다. 

DNS, NFS, SNMP, RIP 등에 사용. 

IP Address 

데이터를 전달받고 어떻게 변환할지 정하는 '약속'

비신뢰성 

데이터가 제대로 전달되었는지 '보장'하지 않는다. 

ICMP - 전송이 제대로 되었는지 확인하고자 하면 활용하는 프로토콜 

비연결성 

패킷을 받을 대상이 연결 상태임을 확인하지 않고 전송. 

받을 대상이 서비스 불능 상태여도 패킷이 전송된다는 문제점이 있음. 

DNS

도메인 주소를 IP주소로 변환해주는 시스템.

ISP가 관리하는 DNS 해석기 요청을 라우팅

로드밸런서

서버의 부하의 분산시켜주는 시스템 

여러 개의 서버의 로드를 분산시켜주는 역할 

웹서버를 예시로, 하나의 서버가 죽는다고 해당 웹이 다운된다면 큰손해라고 할 수 있다. 

때문에 여러대의 서버에 동시에 웹서비스를 띄어두고 부하가 올 때, 분산시켜주는 역할을 수행하는 것이 로드 밸런서. 

4계층, 7계층 (데이터를 어떤 단계까지 열어보느냐.)

L4(전송) : 전송 계층. 데이터를 받아서 전송계층까지만 열어보고 분산 수행. 

  • 개개인의 환경(네트워크, 단말기 등) 정보 - Mac(2 계층), IP(3 계층), Port(4 계층)
  • 위 정보들을 가지고 로드밸런서에서 '분산' 처리 (TCP/UDP의 Port 정보를 바탕으로)
  • 장점: 속도가 빠르고 가격이 저렴함. 
  • 단점: 섬세한 라우팅이 불가능함. 

L7(운영) : 끝까지 다 열어보고 분산을 수행. 

  • 모든 정보를 가지고 분산을 처리 
  • URL기반으로 분산 수행. 
  • DDOS를 방어할 수 있음.(모든 정보를 확인하고 비정상 트래픽을 '거를' 수 있다.  
  • 장점: 훨씬 섬세한 라우팅이 가능. 서비스의 안정성이 높음. 
  • 단점: 높은 비용. 클라이언트가 인증서를 로드밸런서와 '공유'해야하기 때문에 공격자가 '클라이언트'의 데이터에 접근할 보안 상의 위험이 존재. 
반응형