컴퓨터네트워크) TCP/IP

서진·2023년 4월 20일

컴퓨터네트워크

목록 보기
2/9

TCP/IP

이기종들이 서로 통신을 하기 위해 필수적으로 사용되는 기본적인 프로토콜

OSI 7 Layer처럼 계층을 나누어서 통신을 정의하는 계층 개념 + 서비스를 하는 개념
(4개의 계층으로 표현된다)

TCP
: 인터넷을 기반으로 네트워크에서 구현 가능한 여러 서비스
ex) TCP 80 -> HTTP
: TCP라는 통신 방법으로 80번 port로 서비스 받기

IP
: 많은 장치들을 정의하는 주소

UDP
: 대표적으로 DNS 서버가 사용하는 방식 (하지만 DNS는 TCP나 UDP나 다 쓸 수 있음)

-> 일반적으로 우리가 쓰는 네트워크 서비스들은 TCP 또는 UDP에 다 속해있음


1. 네트워크 접속 계층

대표 장치 : NIC(LAN 카드), switch

OSI 7 Layer의 물리 계층과 데이터링크 계층의 역할을 수행

  • 프레임의 송신과 수신을 담당
  • 에러 검출 기능이 있으며, 패킷을 프레임화 한다
  • ARP 는 Broadcast (불특정 다수) / RARP는 Unicast (1:1 통신)

2. 인터넷 계층

대표 장치 : 라우터

OSI 7 Layer의 3계층 역할을 수행

  • 패킷의 송신과 수신을 담당
  • IP 주소를 기반으로 하고, 체계를 관리
  • 패킷을 받으면, IP 주소를 확인하고 패킷을 목적지로 보내는 라우팅 기능을 수행
    (라우팅 경로는 라우팅 프로토콜에 따라 달라진다)
  • IP / ICMP

3. 전송 계층

대표 프로토콜: TCP, UDP

OSI 7 Layer의 전송 계층과 동일

  • end device간의 통신이 완성되는 계층
  • 포트 번호를 통해서 통신
    Well-Known 포트 : 많이 쓰여서 기본값으로 설정되어 있는 포트 번호

✅ TCP와 UDP의 차이

TCP
: 신뢰성 있는 통신을 제공

UDP
: 통신 데이터 처리 속도가 빨라서 실시간 통신을 해야 할 경우에 많이 쓰인다. 신뢰성을 잡으려면 다른 프로토콜과 함께 사용하여야 한다.

=> TCP/UDP Well-Known 포트
7 - Echo
22 - SSH
53 - domain


4. 응용 계층

OSI 7 Layer의 세션, 표현, 응용 계층의 역할을 수행

  • 네트워크를 통한 실제 사용자의 데이터를 처리하는 계층
  • HTTP, HTTPS, FTP, SMTP, DNS ...

TCP의 신뢰성 통신

MTU (Maximum Trasport Unit)
: 큰 데이터를 보낼 때 한 번에 보내는게 아니라 MTU사이즈로 쪼개서 (segmentation)보낸다. 이때 여러개의 데이터를 TCP는 어떻게 전달할까?

  • 쪼개진 여러개의 데이터를 보내면 데이터를 받았다고 반드시 reply를 보낸다.
    ✅ reply ACK
    -> ACK3 3번부터 다시 보내달라는 reply
    : 이 경우 기존에 잘 받은 것도 다시 받게 되어 비효율적임
    -> ACK3, SACK 5-103번 부터 안왔고, 5-10은 잘 받았다는 응답

TCP 헤더

  • 출발지 포트번호 : 랜덤
  • 목적지 포트번호 : well-known port
  • 순서 번호 : 하나의 데이터를 MTU사이즈로 쪼갤 때 쪼갠 순서대로 sequence number을 붙이고, 이를 통해 재조립한다.
  • 확인 응답 번호 : 수신 장치에서 발신 장치로 세그먼트의 전송 성공 여부를 알려준다.
  • 헤더길이 : 20 byte ~ 60byte
  • 예약 : 일반적으로 사용하지 않음
  • URG : 아래의 긴급포인트와 연관해서 빨리 사용할 수 있도록 한다.
  • PSH : 체크되면 긴급한 데이터는 아니지만 빨리 좀 처리해줘
  • RST : Reset으로 다른 데이터와 통신할 때 순서번호 reset
  • FIN : 이걸 주고 받으면 TCP 연결이 이제 끊어짐
  • TCP 검사합 : 오류가 있는지 체크
  • 긴급포인터 : URG랑 연관해서 쓰임

UDP 통신

데이터를 전송할 때 TCP와 같은 방법을 사용하지 않고 데이터를 전송.
비연결성 서비스이므로 데이터가 오다가 손실되면 이 데이터를 다시 받을 수 없음.
-> 다시 물어봐서 통신을 할 수는 있다.
(ex. VoIP(음성)에서 다시 전화로 물어보기)


UDP 헤더

특징 및 TCP와의 차이

포트 번호 (Well-Known Port)를 기반으로 통신
TCP와 달리 수신한 데이터에 대하여 수신 확인 응답 (ACK)하지 않음
TCP보다 헤더가 간단하고, 비교적 덜 다양한 데이터 흐름 제어 기능을 가짐 (신뢰성 낮음)
송수신 절차 간단하여 실시간 데이터 전송에 효과적
송수신 장치 간에 비연결성 서비스를 지원하여 데이터그램 간의 전후 관계를 고려하지 않고 전송


IP 헤더

IPv4와 IPv6

OSI 7 Layer의 3계층에서 패킷을 출발지에서 목적지까지 전달하는데 사용
-> 3계층은 IP 주소를 기반으로 통신하니깐!

최선형 서비스(최대한 전달)를 기반으로 패킷을 전달하며, 패킷의 도착을 보증하지 않는다. (=비신뢰성)
-> TCP와 같이 신뢰성 높은 프로토콜을 같이 사용하여 단점 보완

  • 버전 : IPv4, IPv6
  • 헤더길이 : 20byte ~ 60byte
  • TOS : QoS(패킷 우선처리 기술 FIFO)를 기반으로 TOS가 마킹된 데이터가 먼저 처리됨.
  • ECN : 패킷이 전달되는 경로에 혼잡이 생기면 알려줌
  • 식별자 : 패킷에 생성되는 고유번호
  • 플래그 : IP 패킷 분할을 더 할 수 있나 없나?
  • 분할 위치 : 플래그에서 패킷 분할을 더 할 수 있다면, 분할 위치를 표시하고 재조합할 때 사용한다.
  • TTL : 라우터를 거칠 때 마다 값이 -1되어 TTL값이 0이 되면 데이터를 전부 삭제시킨다. (루핑을 방지하기 위함)
  • 프로토콜 : TCP or UDP
  • 헤더 검사합 : 오류가 있는지 없는지 확인
profile
🫧 ☁️ 🌙 👩🏻•💻 🌿 🐱 🖱 🍟 🚀 ⭐️ 🧸 🍀 💗

0개의 댓글