네트워크 필기

틈메이러·2024년 8월 28일

필기

목록 보기
2/16
post-thumbnail

🍅OSI 7 LAYER

1. 프로토콜

컴퓨터 및 네크워크 간에 통신 규약규칙, 즉 서로 간의 약속

2. OIS 7 Layer 모델

개방형 시스템 상호 연결(Open Systems Interconnection Reference)
국제 표준화 기구에서 만든 모델
각 계층은 특정 기능을 수행
현재 대부분의 프로토콜은 TCP/IP 기반으로 존재

계층이름데이터(PDU)설명장비
7계층응용 계층(Application)Data이메일&파일 전송, 웹사이트와 상호작용소프트웨어기반
6계층표현 계층(Presentation)Data문자 코드, 압축. 암호화 등 데이터 변환소프트웨어기반
5계층세션 계층(Session)Data세션 체결, 통신 방식 설정 및 동기화소프트웨어기반
4계층전송 계층(Transport)Segments데이터를 신뢰성과 정확성 있는 전달소프트웨어기반
3계층네트워크 계층(Network)Packets다른 네트워크와의 통신을 위한 경로 설정라우터, 일부 스위치
2계층데이터 링크 계층(Data Link)Frames인접한 네트워크 기기 간의 데이터 전송스위치, 브리지
1계층물리 계층(Physical)Bits물리적인 연결과 전기 신호 변환케이블, 허브, 리피터

계층전송 단위전송 범위특징
물리 계층Bit, SignalHop-by-Hop 전송중간에 정보가 바뀌지 않음
데이터 링크 계층FrameHop-by-Hop 전송중간에 정보가 바뀌지 않음
네트워크 계층Packet, DatagramEnd to End (종단간) 전송중간에 정보가 바뀌지 않음
전송 계층Segment, User DatagramEnd to End (종단간) 전송
응용 계층MessageEnd to End (종단간) 전송

3. 캡슐화 과정 (Encapsulation)

캡슐화 과정은 데이터를 각 계층에서 필요한 헤더 정보를 추가하여 다음 계층으로 내려보내는 과정. 각 계층은 자신이 처리해야 할 프로토콜 헤더를 추가하고, 이를 기반으로 데이터를 전달

응용 계층 (Application Layer)

사용자가 직접 사용하는 응용 프로그램에 관련된 데이터 생성
주로 HTTP, FTP, SMTP 등의 프로토콜이 사용
실제로 전송할 데이터인 메시지(Message)가 생성


표현 계층 (Presentation Layer)

데이터의 형식 변환, 암호화, 압축 등을 수행
데이터에 대한 특정 변환 작업이 이루어진 후 메시지(Message)가 다음 계층으로 전달


세션 계층 (Session Layer)

송수신 장치 간의 세션 관리 및 연결 제어
추가적인 헤더를 추가하지 않고 세션 관리와 동기화 작업 수행


전송 계층 (Transport Layer)

데이터 전송의 신뢰성을 보장하는 계층으로, TCP/UDP 프로토콜을 사용
세그먼트(Segment)라는 데이터 블록을 형성하며, TCP 헤더에는 포트 번호, 시퀸스 번호, 오류 검출 코드 등이 포함


네트워크 계층 (Network Layer)

이 계층에서는 패킷 전달 경로를 결정하고, IP 주소를 통해 목적지를 찾음
패킷(Packet)이라는 형태로 데이터를 캡슐화하며, IP 헤더에는 출발지 IP 주소, 목적지 IP 주소, 패킷 번호 등이 포함


물리적 주소(MAC 주소)를 기반으로 데이터를 전송하며, 오류 검출과 프레임 동기화를 담당
이더넷(Ethernet) 프로토콜을 주로 사용, LAN(Local Area Network)에서 주로 사용
이더넷은 CSMA/CD (Carrier Sense Multiple Access with Collision Detection)를 사용하여 충돌을 감지하고 데이터를 재전송하는 메커니즘을 가짐
프레임(Frame)으로 캡슐화되며, 여기에는 출발지 및 목적지 MAC 주소, 오류 검출을 위한 FCS(Frame Check Sequence) 등이 포함


물리 계층 (Physical Layer)

데이터를 실제 전송 매체를 통해 비트(Bit) 단위로 전송
이 계층에서는 더 이상 추가되는 헤더는 없고, 프레임이 전기 신호나 광 신호 등으로 변환되어 전송



4. 인캡슐화 과정 (Decapsulation)

수신 측에서 데이터의 캡슐화를 역순으로 해제하며 원래의 데이터를 복원하는 과정. 수신된 데이터는 물리 계층에서 시작하여 각 계층을 거치면서 헤더를 제거하고, 최종적으로 응용 계층에 도달하여 사용자가 사용할 수 있는 데이터 형태로 복원

물리 계층 (Physical Layer)

전송된 신호를 비트 단위로 변환하여 상위 계층으로 전달


프레임에서 MAC 주소를 확인하고, 오류 검사를 수행한 후, 프레임 헤더를 제거하고 상위 계층으로 전달


네트워크 계층 (Network Layer)

IP 헤더를 제거하고 목적지 IP 주소를 확인하여 적절한 상위 계층으로 데이터를 전달


전송 계층 (Transport Layer)

세그먼트에서 포트 번호, 시퀀스 번호를 확인하고, 데이터의 흐름을 제어하며 세그먼트 헤더를 제거


세션 계층 (Session Layer)

세션 관리를 통해 데이터가 올바르게 전달되었는지 확인한 후, 데이터를 상위 계층으로 전달


표현 계층 (Presentation Layer)

데이터의 형식 변환, 복호화, 압축 해제 등을 수행


응용 계층 (Application Layer)

최종적으로 사용자가 사용할 수 있는 데이터 형태로 변환된 메시지가 응용 프로그램에 전달됩니다.



5. 캡슐화를 하는 이유

  1. 계층화된 네트워크 설계
  2. 기능의 분리
  3. 표준화 및 호환성
  4. 에러 검출 및 수정
  5. 데이터의 효율적 전달

6. 캡슐화의 이점

  1. 유연성
  2. 디버깅 용이성
  3. 확장성
  4. 보안
  5. 모듈화



🍅포트번호

1. System Ports

0번 ~ 1023번 포트를 System Ports 또는 Well-Known Ports라고 함
이 범위의 포트는 특정 서비스를 위해 예약됨

이름번호프로토콜설명
HTTP80TCP, UDP평문 통신
HTTPS443TCP암호화된 HTTP
SSL443TCP데이터 암호화
FTP20, 21TCP20: 데이터 포트, 21: 제어 및 인증 포트
SSH22TCP원격 호스트에 접속하려고 사용되는 보안 프로토콜
Telnet23TCP평문
SMTP25TCP이메일 전송
DNS53TCP, UDP도메인을 IP주소로 변경
DHCP67UDP서버와 클라이언트 간의 통신 포트
TFTP69UDP사용자 인증 없이 기본 파일 전송 기능
POP3110TCP받는 메일 서버
iMAP4143TCP이메일
NetBios137~139137~138은 udp, 139는 tcp윈도우 네트워크 프로토콜
SNMP161, 162UDP게이트 웨이 관리 프로토콜
SMB445TCP윈도우 파일 공유 프로토콜

2. User Ports

1024번 ~ 49151번 포트를 User Port, Registered Ports라고 함

이름번호프로토콜
RDP3389원격 데스크톱 포트

3. Dynamoc ports

49152번 ~ 65535번 포트를 Dynamic Ports라고 함


DB포트

이름번호설명
MS-SQL1433, 1434Microsoft
My-SQL3306Oracle
Oracle Database1521, 1522Oracle
Derby1433, 1434Apache
PostgreSQL5432PostgreSQL
MongoDB27017 ~ 27019 , 28017MongoDB

4. LAN(Local Area Network): 근거리통신

유니캐스트

1:1통신
목적지: 특정ip

멀티캐스트

1:N 통신, 특정 그룹에게만
목적지: 멀티캐스트 그룹ip > 224.

브로드 캐스트

1:전부통신
목적지: 255.255.255.255




🍅프로토콜 별 헤더

1. 이더넷 프레임

PreambleSFDMac dstMac srcLen/TypePayloadFrame check sequence
7166246~15004

Preamble: 프레임의 시작을 알리는 신호
비트 패턴: 01010101, 7바이트(총 56비트) 동안 반복
SFD: 프레임의 시작을 표시하는 1바이트 필드, 데이터 프레임의 시작을 명확히 알림
비트 패턴: 10101011
Mac dst: 프레임을 수신할 대상 장비의 MAC 주소
Mac src: 프레임을 전송한 대상 장비의 MAC 주소
Len/Type: 이더타입(EtherType) 또는 길이 필드

이더타입: 상위 계층 프로토콜(IPv4, IPv6, ARP 등)을 식별하는 값
길이 필드: IEEE 802.3 표준에서는 이 필드를 데이터 길이로 사용, 길이 필드는 데이터의 길이를 나타내며, 데이터의 최대 길이를 1500바이트로 제한

이더넷 헤더

유형번호프로토콜
0800IPv4
0806ARP
0835RARP
814CEthernet
86DDIPv6

Payload: 상위 계층의 프로토콜로부터 캡슐화 된 데이터. 46~1500byte 크기. 상위계층의 패킷의 길이가 46byte 보다 작을때 끝에 padding(0)으로 채움

MTU(Maximun Transmission Unit): 한 번에 전송 가능한 데이터 패킷의 최대 크기
MTU를 초과하는 데이터는 작은 패킷으로 분할하여 전송
이더넷은 보통 1500byte의 MTU 사용


2. IP 프로토콜

Internet Protocol
각 장치에 IP 주소를 부여하여 통신하고 식별
IP 주소 체계를 통해 네트워크 상에서 각 장치를 고유하게 식별

IP 헤더


IP 헤더

Offsets
IP 패킷이 단편화(fragmentation)될 때 사용되는 개념
IP 패킷이 단편화될 때 각 단편의 위치를 나타내는 값

Octet
8비트(1바이트) 단위의 데이터를 나타내는 용어

Version
프로토콜 버전
IHL(Internet Header Length)
IP헤더의 길이, 이 값에 따라 옵션 필드의 유무와 길이를 알 수 있다

TOS(Type of Service)
패킷 처리의 우선 순위 결정

Total Length
IP헤더와 데이터를 포함한 전체 패킷의 길이

Identification
패킷을 구분하는 고유번호, 분할된 패킷을 다시 재조립하는데 사용

Flags
패킷의 분할 가능 여부와 분할된 패킷의 마지막 조각인지 여부

Fragment Offset
분할된 패킷의 순서

TTL(Time to Live)
패킷의 생명 주기, 네트워크를 지날 때마다 감소

Protocol
상위 계층 프로토콜(TCP, UDP 등)을 나타냄

Header Checksum
헤더의 오류 검출을 위한 체크섬

Source IP Address
발신자의 IP 주소

Destination IP Address
수신자의 IP 주소.


3. ARP 프로토콜

데이터 통신을 위해서는 물리적 주소(MAC 주소)와 논리적 주소(IP 주소)가 필요
두 개의 주소를 연계하기 위해사용되는 프로토콜이 ARP(Address Resolution Protocol)

ARP 헤더

ARP 헤더

Hardware Type
사용되는 하드웨어 주소의 유형을 지정
예를 들어, 이더넷의 경우 값이 1

Protocol Type
변환하려는 상위 계층 프로토콜의 유형을 의미
IPv4의 경우 값이 0x0800

Hardware Address Length
물리 주소의 길이를 지정
이더넷의 경우 MAC 주소가 6바이트이므로 이 값은 6

Protocol Address Length
프로토콜 주소의 길이를 지정
IPv4 주소의 길이는 4바이트이므로 이 값은 4

Operation Code
ARP 메시지가 요청인지 응답인지를 나타냄

Request = 1
특정 IP주소에 대한 MAC 주소를 찾기 위한 요청
네트워크 내 모든 장치에게 브로드캐스트, 해당 IP 주소를 가진 장치는 이 요청에 응답하여 자신의 MAC 주소 제공

Response = 2
요청에 대한 응답
요청받은 IP 주소에 대한 MAC주소를 포함, 요청을 보낸 장치에게만 응답

Sender Hardware Address (6 bytes for Ethernet)
ARP 요청 또는 응답을 보낸 장치의 MAC 주소를 포함

Sender Protocol Address (4 bytes for IPv4)
ARP 요청 또는 응답을 보낸 장치의 IP 주소를 포함

Target Hardware Address (6 bytes for Ethernet)
목적지 장치의 MAC 주소를 포함
ARP 요청에서는 이 필드가 0으로 설정됩니다(목적지 MAC 주소를 알 수 없기 때문)
ARP 응답에서는 이 필드에 요청된 MAC 주소가 포함

Target Protocol Address (4 bytes for IPv4)
목적지 장치의 IP 주소를 포함
ARP 요청에서는 이 주소가 요청하려는 IP 주소를 나타내며, ARP 응답에서는 요청된 IP 주소를 나타냄


4. ICMP 프로토콜

Internet Control Message Protocol
네트워크 장치들이 정보를 교환하거나 오류 메시지를 보내는데 사용
라우터와 같은 네트워크 장치 사용
대표적 활용: Ping, Traceroute, Tracert

ICMP 헤더

ICMP 헤더

Type
ICMP 메시지의 유형

Code
ICMP 메시지의 서브 유형
이 필드는 Type 필드에 대한 추가적인 정보를 제공
예를 들어, Type이 3(Destination Unreachable)일 때, Code가 0이면 Network Unreachable(네트워크 도달 불가)을 의미하고, Code가 1이면 Host Unreachable(호스트 도달 불가)을 의미,

Checksum
ICMP 헤더와 데이터를 포함한 전체 ICMP 메시지의 오류 검사를 위한 필드
데이터가 전송 중 손상되었는지 확인하는 데 사용

Rest of Header
이 필드는 Type 및 Code에 따라 다른 정보를 담음
예를 들어, Echo Request와 Echo Reply 메시지에서는 식별자와 시퀀스 번호를 담고 있으며, 오류 메시지에서는 문제가 된 IP 패킷의 일부를 담고 있을 수 있다

Echo Request/Reply의 경우:
Identifier (2 bytes): 요청과 응답을 일치시키기 위한 식별자
Sequence Number (2 bytes): 요청과 응답을 일치시키기 위한 시퀀스 번호

Destination Unreachable의 경우:
Unused (2 bytes): 사용되지 않음
Next-Hop MTU (2 bytes): 다음 홉의 MTU (Path MTU Discovery에서 사용)

Data
ICMP 메시지의 추가 데이터를 포함
예를 들어, Ping 명령에서 Echo Request 메시지를 보낼 때 데이터 필드는 임의의 바이트로 채워짐
오류 메시지의 경우, 이 필드에는 문제가 된 원본 IP 패킷의 헤더와 처음 8바이트(즉, TCP/UDP 헤더의 일부)를 포함

ICMP 타입과 코드 필드


5. TCP 프로토콜

4계층인 전송계층에서 사용
신뢰성 있는 연결을 제공, 데이터의 순서 보장 및 오류 복구 수행
1대1 통신(Point-to-Point)

3-Way Handshake

TCP에서 통신을 하기 전, 신뢰성 있는 연결을 확립하기 위해 세 번의 패킷 교환(SYN, SYN-ACK, ACK)을 수행하는 과정


TCP 헤더

TCP 헤더

Source Port (출발지 포트, 16비트)
송신 측 애플리케이션의 포트 번호

Destination Port (목적지 포트, 16비트)
수신 측 애플리케이션의 포트 번호

Sequence Number (순서 번호, 32비트)
세그먼트 안의 첫 번째 바이트에 대한 순서 번호
송신된 데이터의 순서를 추적하고, 수신 측에서 데이터가 올바르게 재조립되도록 도움

Acknowledgment Number (확인 응답 번호, 32비트)
수신 측에서 다음으로 기대하는 바이트의 순서 번호
송신 측에 데이터가 성공적으로 수신되었음을 알리는 데 사용

Data Offset (데이터 오프셋, 4비트)
TCP 헤더의 크기를 바이트 단위로 나타내며, 데이터가 시작되는 위치를 알림

Reserved (예약 비트, 3비트)
미래에 사용하기 위해 예약된 필드
현재는 0으로 설정

Flags (플래그, 9비트)
제어 플래그로, TCP 연결의 상태와 흐름을 제어
주요 플래그는 아래와 같음

URG: Urgent Pointer 필드가 유효함을 나타냄
ACK: Acknowledgment Number 필드가 유효함을 나타냄
PSH: 데이터가 즉시 전달되어야 함을 나타냄
RST: 연결을 재설정할 때 사용
SYN: 연결을 시작할 때 사용
FIN: 연결을 종료할 때 사용

Window Size (윈도우 크기, 16비트)
수신 측에서 수신할 준비가 된 데이터의 양
흐름 제어에 사용
매번 응답을 기다리는 대신 연속으로 세그먼트를 보내고 확인 응답을 반환하면 효율이 높아지지만 상대방에는 세그먼트가 점점 쌓임
상대방에게 쌓인 세그먼트버퍼(buffer)라는 장소에 일시적 보관
버퍼(buffer) 덕분에 세그먼트를 연속해서 보내도 수신측에서 대응 가능 및 효율도 오름

Checksum (체크섬, 16비트)
헤더와 데이터의 무결성을 확인하기 위해 사용
수신 측에서 데이터가 손상되지 않았는지 확인

Urgent Pointer (긴급 포인터, 16비트)
URG 플래그가 설정된 경우에만 사용
긴급 데이터의 끝을 나타냄

Options (옵션, 가변 길이)
확장 가능한 옵션 필드
최대 320 비트까지 가변 길이
예를 들어, 최대 세그먼트 크기(MSS)를 지정하는 데 사용

Padding (패딩, 가변 길이)
헤더의 크기를 32비트의 배수로 맞추기 위해 사용


TCP Control Flow

Window Size 작을 때


Window Size 클 때


6. UDP 프로토콜

User Datagram Protocol
비연결성
신뢰성 없는 전송 프로토콜
흐름 제어, 오류 제어, 손상된 세그먼트 수신의 재전송을 하지 않음
덕분에 전송속도가 빠름
주로 유튜브같은 영상 재생에 사용

UDP 헤더

Source Port
패킷의 수신지 식별

Destination Port
패킷의 목적지 식별

Length
UDP 헤더와 데이터의 전체 길이

Checksum
데이터그램의 오류 검출


profile
나는야 멋쟁이 토마토

0개의 댓글