CS 전공지식 -TCP/IP 4계층

KIM HYUNMIN·2024년 8월 26일

CS 기초지식

목록 보기
1/13

TCP/IP

- 계층 구조(애플리케이션,전송,인터넷,링크계층)

- 패킷 교환 방식

- TCP 연결,해제 과정

- CSMA/CD,CSMA/CA

- 계층간 데이터 송수신 과정

- PDU

1. TCP/IP 계층 구조


OSI 7계층과는 다르게 응용, 전송,인터넷, 링크(네트워크 접근) 계층으로 4개로 나뉜다

1-1 애플리케이션 계층

TCP/IP 5계층 중에서 가장 위에 위치했으며, 컴퓨터끼리의 주고받기를 사용자가 이용할 수 있는 ‘통신 서비스' 형태로 만드는 것이 해당 계층의 역할이다.
서비스를 실질적으로 사람들에게 제공하는 공간으로 사용자 공간이라고도 한다.
FTP,HTTP,SSH,SMTP,DNS 등 응용 프로그램이 사용되는 프로토콜 계층이다.

FTP - 파일 전송하는데 쓰이는 표준 통신 프로토콜
SSH - 암호화 네트워크 프로토콜
HTTP - 웹사이트를 이용하는데 쓰는 프로토콜
SMTP - 전자메일전송을 위한 표준 통신 프로토콜
DNS - 도메인 이름과 IP 주소를 매핑해주는 서버

1-2 전송계층

전송 계층은 송신자와 수신자를 연결하는 통신 서비스를 제공하며 연결 지향 데이터 스트림 지원, 신뢰성,흐름 제어를 제공할 수 있으며 애플리케이션과 인터넷 계층 사이의 데이터가 전딸될 때 중계 역할을 한다. 대표적으로 TCP/UDP 가 있다.

전송계층은 데이터 링크 계층과 유사한데 데이터링크 계층은 물리적으로 1:1 연결된 호스트 사이에 전송을 하고 전송 계층은 논리적으로 1:1 연결된 호스트 사이의 전송을 나타낸다.
PDU - TCP : 세그먼트
UDP : 데이터 그램

전송계층의 주요기능

  • 흐름제어 : 수신 호스트가 슬라이딩 윈도우 프로토콜의 윈도우 하단 값을 조정
    • 슬라이딩 윈도우 프로토콜: 데이터 통신에서 사용되는 흐름 제어 기법 중 하나입니다.
  • 오류제어 : 데이터 변형과 분실 - 재전송에 의한 오류 제어 기능에 의해 복구
  • 분할과 병합
    분할: 데이터를 전송하기 전에 적합한 크기로 나누는 과정
    병합: 수신 프로세스가 수신한 데이터를 원래 크기로 다시 모으는 과정
  • 서비스 프리미티브: 전송 계층 사용자가 전송 계층 서비스를 사용하기 위한 인터페이스

전송계층의 통신 방식

1) 연결형 통신(TCP) : 연결형 서비스를 제공, 전이중 방식의 양방향 가상 회선을 제공, 신뢰성 있는 데이터 보장 -> 말그대로 요청을 하면 응답이 있어야 함
TCP 헤더구조
Sequence Number: 송신 프로세스가 지정하는 순서번호
ACK Number: 수신 프로세스가 제대로 수신한 바이트의 수를 응답하기 위해 사용

2) 비연결형 통신(UDP) :프로토콜중 구조가 가장 간단, 비연결형 서비스 제공,Best Effort 전달 방식을 지원한다. (그냥 최선을 다함)
신뢰성이 떨어지지만 프로토콜 처리하는 기능이 작아 데이터 처리속도가 매우 빠름 그래서 속도에 민감한 환경에 UDP 사용하는 것이 유리. 예를들어 동영상이지 않을까 싶음

TCP 연결 과정


1. a 프로세스에서 시퀀스 번호 10으로 ,syn 과 함께 보냄
2. b 프로세스에서 요청을 잘 받았다고 시퀀스번호에서 하나 더해서 ack 로 보내면서 syn 요청까지 같이 보냄
3. a에서 요청이 제대로 처리됬다는 ack를 받았고 다시 b에게 요청이 제대로 처리 됬다고 시퀀스 번호에 1을 더해서 줌 그러면 둘다 요청 하고 응답 잘됬으니까 연결된거임

TCP 해제 과정

  1. A프로세스가 종료하기 위해 FIN 플래그 B 프로세스에게 전송 이때 시퀀스 16 확인 응답(ACK)는 61

  2. B프로세스는 A로부터 받은 FIN 확인후 A에게 시퀀스 번호 1을 더한 17을 ACK 로 설정해서 보냄 동시에 B는 A에게 전송할 데이터가 남아 있으므로 자신의 데이터도 보냄 이때 B의 순서번호 61

  3. B프로세스가 더이상 보낼 데이터가 없으면 B도 종료하기 위해 FIN 플래그 설정된 패킷을 전송 이패킷은 66이고 확인 응답번호는 17 이때 B도 A에게 더이상 보낼 데이터가 없음을 알림

  4. A 프로세스는 B로부터 받은 FIN 패킷을 확인후 B의 순서번호에 1을 더한 67 로 확인 응답 번호로 설정하여 보냄.

패킷 교환 방식

1) 가상 회선 패킷 교환 방식 : 가상회선 식별자가 포함되며 모든 패킷을 전송하면 가상 회선이 해제되고 패킷들은 전송된 순서대로 도착하는 방식
2) 데이터 그램 패킷 교환 방식 : 패킷이 독리접으로 이동하며 최적의 경로를 선택하여 가는데 하나의 메세지에서 분할된 패킷은 서로 다른 경로로 전달될 수 있으며 도착 순서가 다를수 있음

1-2 인터넷 계층

장치로부터 받은 네트워크 패킷을 IP 주소로 지정된 목적지로 전송하기 위해 사용되는 계층
PDU - 패킷
1) APR 프로토콜 : IP주소와 MAC 주소 사이의 변환을 담당 (IP로 MAC주소 찾기)
통신을 위해 사용되는 주소의 흭득 방법
: 송신호스트의 IP주소 - 송신호스트의 하드 디스크에서 흭득
: 수신호스트의 IP주소 - 사용자가 제공
: 송신호스트의 MAC주소 - LAN 카드에서 흭득
: 수신호스트의 MAC주소 - ARP 프로토콜을 통해 흭득

2) RARP 프로토콜: MAC주소에 해당하는 IP주소를 서버로부터 알아오는 프로토콜 (MAC주소로 IP찾기)

  • 하드디스크가 없는 시스템은 자신의 IP주소를 알수 없음

    3) ICMP 프로토콜 : 인터넷 환경에서 오류에 관한 처리를 지원
    오류보고 메세지 - IP 패킷을 전송하는 과정에서 발생하는 문제를 보고하는것이 목적,ping 같은 명령어도 icmp 프로토콜 사용하는 것

1-3 링크 계층

링크 계층은 전선,광섬유,무선 등으로 실질적으로 데이터를 전달하며 장치간에 신호를 주고받는 규칙을 정하는 게층 여기서 데이터링크 계층은 에러확인,흐름제어,접근제어를 담당 하는 계층

유선랜은 전이중화 통신 사용 -> 전이중화란 그냥 양쪽에서 송수신하는거 -> 이게 현재 사용하는 이더넷

CSMA/CD : 반이중화 통신 , 데이터를 보낸 이후 충돌이 발생한다면 일정 시간 이후 재전송하는 방식 (충돌을 감지 하는 방식)
CSMA/CA : 반이중화 통신 , 장치에서 데이터를 보내기전에 일련의 과정을 기반으로 사전에 충돌을 방지 하는 방식

계층 간 데이터 송수신 과정


왼쪽 클라이언트에서 요청을 보내면 값들이 내려가면서 캡슐화 되고 링크 게층에서 해당 서버와 통신을 해서 비캡슐화 과정을 거쳐 데이터가 전송 된다.

  1. 애플리케이션 계층 ex) GET /index.html HTTP/1.1 같은 헤더가 추가
  2. 전송 계층: TCP 또는 UDP 헤더가 추가 여기에는 송.수신자 포트 번호, 오류 검출을 위한 체크섬, 순서 번호(Seq) 등이 포함
  3. 네트워크 계층 : ip주소를 사용 하여 라우팅을 담당 , 최정의 경로 결정, 이 헤더에는 송신자와 수신자의 IP 주소, 패킷의 생존 시간(TTL), 프로토콜 정보 등이 포함
  4. 데이터링크 계층 : MAC 주소를 사용하여 장치 간 데이터 프레임 전송을 처리합니다.
  5. 실제 전송 매체를 통해 비트(0과 1)의 전기적 신호로 데이터를 전송합니다.

쭉 비캡슐화 되가면서 처음보낸 데이터가 목적지에 올바르게 도착 할수 있음.

profile
Linux,Window,Network,docker,kubernets

0개의 댓글