본문 바로가기

수업정리/네트워크

외워서 끝내는 네트워크 핵심이론 -기초 1

Network 와 Layer

Layer : 하위는 상위 요소에 전제이다.

- 행위, 기능, 존립, 의존적

 

Network : 

Networking : 상호작용

 

Layered : 언어가 있어야 ()이 있고 공기중으로 퍼져나갈 수 있다.

네트워크 통신도 마찬가지로 각 요소가 있어야 통신이 가능하다. → OSI 7Layer

                     

 

DOD  OSI 단계   식별자 구분
Application L7 HTTP    
    -    
Host to Host L5 SSL (TLS)    
Internet L4 TCP, UDP Port 번호 Interface / Service / Process (L2,L3,L7)
Network Access L3 Internet IP 주소 Host
L2 Ethernet MAC 주소  Network Interface Card
    -    

 


Host : Computer + Network

- Switch : Network 그 자체를 이루는 Host(Infra)

- End-point : 이용 주체 (단말기)

 

Switch : 단위요소인 Packet이 출발지에서 목적지까지 갈 때의 교차로 역할

Interface / Switching : 경로 선택을 의미

 

Router : L3 단계에서 Switch 해주는 모듈

- Routing table(이정표) 존재

*Matrix : 이동할 때의 비용


L2 : NIC + (L2)Frame + LAN card + MAC

-NIC(Network Interface Card) == LAN(Local Area Network)카드

- /무선 NIC 구별은 별로 안함

- NIC HW, MAC주소 있음

 

LAN : 네트워크의 규모

 

Frame : L2에서 단위

속도표현 : 1Gbps (bits) != 1GBps


L2 Access switch

- End-point  직접 연결되는 스위치

- MAC 주소 기반 스위칭

-  연결 : Interface, MAC, Port / Hub

- 연결/단절 Link-up / Link-down

- Uplink : Router  이동

 

L2 Distribution switch

- L2 Access 스위치를 위한 스위치

- VLAN(Virtual LAN) 기능 제공

Driver : 하드웨어 관리 SW

- NIC(Network Interface Card)


LAN과 WAN의 경계와 Broadcast

Broadcast

전체에게 뿌림, 비효율적이라서 꼭 필요할 때만 써야함

Broadcast 주소 = 방송주소    ↔  Uninicast

목적지 MAC(48bits)주소가 모두 1이면 Broadcast 다. [ FF FF FF FF FF FF (1111 1111 ... ) ]

 

LAN : Physical 딴의 네트워크의 규모

WAN : Logical 딴의 네트워크 규모


L3 

IP 

IPv4 주소 = 32bits = 4bytes = 2^8 (0 ~ 255)

192. 168.0  . 10
Network ID Host ID

 

Packet

단위 데이터 L3 IP Packet 으로 외우기

Header, Payload 로 나뉘며 최대 크기는 MTU(Maximum Transmission Unit, 1500bytes)


Encapsulation과 Decapsulation

Encapsulation : 단위화, 포장

Decapsulation : 역단위화, 포장풀기

L2 Frame 안에 L3 IP Packet 있고 그 안에 L4 TCP Segment 있음 ...

 

Packet 의 생성, 전달, 소멸

집(Host)   →   책(Packet)    →   기사(Gateway) ... Routing ...  →   집(Host)   →   이름(Port) 로 전달 

 

Socket : User Mode에 있는 Application 프로세스가 사용할 수 있도록 Kernel mode 에 있는 TCP/IP 를 추상화한 Interface (file)

프로세스(App)   →   Data 를 Write = Send      Data + TCP = Segment   →   Segment + IP = Packet    →   Packet + Ethernet Header = Frame  →   L2 Access Switch    →    Router    ...

 

OSI 단계 데이터 단위
L7  
   
Socket Stream
L4- Network Segment
L3 - Internet Packet
L2 - Data Link Frame
L1 - Physical

 


TCP/IP 송수신 구조

송신

1. HDD/SDD 에서 파일 일부분이 Poccess 의 Buffer 로 Copy

2. Buffer를 Send 함 Socket I/O Buffer 로 copy

3. User mode 에서 Kernel mode 로 넘어갈 때 분해가 발생

4. TCP에서 쪼게진 Segment 로  IP로 전달

5. IP에서 Packet 으로 만들어져서 전송

6. Packet 을 물리계층에서 전달 (Frame)

 

수신

1. Frame 받아서 IP에서 Packet 얻음

2. TCP 에서 Packet 풀어서 Segement 얻기

3. TCP 에서 Segment 풀어서 Socket I/O Buffer 채우기 - 순서 필요, ACK 발생, 여유공간 필요

4. Proccess 의 Buffer 로 Receive 해서 copy 하기


정리

네트워크와 연결된 Computer는 Host다.

이때 Switch는 MAC 주소 있고, IP 주소 있고, 데이터(L3,Packet) 전달 가능하니 그냥 네트워크 그 자체를 이루는 Host (Infra) 이다.

위의 네트워크 Infra 를 사용하는 주체는 End-point 라고 한다.

→ 컴퓨터 + 네트워크면 Host구나

→ Switch 는 네트워크 자체를 이루고 있으니 Host 이면서 Infra 구성요소구나

→ End-point 는 네트워크 (Infra) 사용만하는구나

→ End-point 도 컴퓨터 + 네트워크이니 Host겠지?

 

L2 Frame 단위고 L3 IP Packet 단위이다.

Broadcast 는 MAC 주소로 뿌리고 전체에 뿌리니까 범위설정이 중요하고 가끔 뿌려야한다.

 

Network 와 Layer

Layer : 하위는 상위 요소에 전제이다.

- 행위, 기능, 존립, 의존적

 

Network : 관계

Networking : 상호작용

 

Layered : 언어가 있어야 ()이 있고 공기중으로 퍼져나갈 수 있다.

네트워크 통신도 마찬가지로 각 요소가 있어야 통신이 가능하다. → OSI 7Layer

 

 

                          User Mode             

-------------------------------------

TCP                 Kernel Mode

IP_____________________S/W

                                              H/W

 

 

DOD  OSI 단계   식별자 구분
Application L7 HTTP    
    -    
Host to Host L5 SSL (TLS)    
Internet L4 TCP, UDP Port 번호 Interface / Service / Process (L2,L3,L7)
Network Access L3 Internet IP 주소 Host
L2 Ethernet MAC 주소  Network Interface Card
    -    

 


Host : Computer + Network

- Switch : Network 그 자체를 이루는 Host(Infra)

- End-point : 이용 주체 (단말기)

 

Switch : 단위요소인 Packet이 출발지에서 목적지까지 갈 때의 교차로 역할

Interface / Switching : 경로 선택을 의미

 

Router : L3 단계에서 Switch 해주는 모듈

- Routing table(이정표) 존재

*Matrix : 이동할 때의 비용


L2 : NIC + (L2)Frame + LAN card + MAC

-NIC(Network Interface Card) == LAN(Local Area Network)카드

- /무선 NIC 구별은 별로 안함

- NIC HW, MAC주소 있음

 

LAN : 네트워크의 규모

 

Frame : L2에서 단위

속도표현 : 1Gbps (bits) != 1GBps


L2 Access switch

- End-point  직접 연결되는 스위치

- MAC 주소 기반 스위칭

-  연결 : Interface, MAC, Port / Hub

- 연결/단절 Link-up / Link-down

- Uplink : Router  이동

 

L2 Distribution switch

- L2 Access 스위치를 위한 스위치

- VLAN(Virtual LAN) 기능 제공

Driver : 하드웨어 관리 SW

- NIC(Network Interface Card)


LAN과 WAN의 경계와 Broadcast

Broadcast

전체에게 뿌림, 비효율적이라서 꼭 필요할 때만 써야함

Broadcast 주소 = 방송주소    ↔  Uninicast

목적지 MAC(48bits)주소가 모두 1이면 Broadcast 다. [ FF FF FF FF FF FF (1111 1111 ... ) ]

 

LAN : Physical 딴의 네트워크의 규모

WAN : Logical 딴의 네트워크 규모


L3 

IP 

IPv4 주소 = 32bits = 4bytes = 2^8 (0 ~ 255)

192. 168.0  . 10
Network ID Host ID

 

Packet

단위 데이터 L3 IP Packet 으로 외우기

Header, Payload 로 나뉘며 최대 크기는 MTU(Maximum Transmission Unit, 1500bytes)


Encapsulation과 Decapsulation

Encapsulation : 단위화, 포장

Decapsulation : 역단위화, 포장풀기

L2 Frame 안에 L3 IP Packet 있고 그 안에 L4 TCP Segment 있음 ...

 

Packet 의 생성, 전달, 소멸

집(Host)   →   책(Packet)    →   기사(Gateway) ... Routing ...  →   집(Host)   →   이름(Port) 로 전달 

 

Socket : User Mode에 있는 Application 프로세스가 사용할 수 있도록 Kernel mode 에 있는 TCP/IP 를 추상화한 Interface (file)

프로세스   →   Data 를 Write = Send      Data + TCP = Segment   →   Segment + IP = Packet    →   Packet + Ethernet Header = Frame  →   L2 Access Switch    →    Router    ...

 

OSI 단계 데이터 단위
L7  
   
Socket Stream
L4- Network Segment
L3 - Internet Packet
L2 - Data Link Frame
L1 - Physical

TCP/IP 송수신 구조

송신

1. HDD/SDD 에서 파일 일부분이 Poccess 의 Buffer 로 Copy

2. Buffer를 Send 함 Socket I/O Buffer 로 copy

3. User mode 에서 Kernel mode 로 넘어갈 때 분해가 발생

4. TCP에서 쪼게진 Segment 로  IP로 전달

5. IP에서 Packet 으로 만들어져서 전송

6. Packet 을 물리계층에서 전달 (Frame)

 

수신

1. Frame 받아서 IP에서 Packet 얻음

2. TCP 에서 Packet 풀어서 Segement 얻기

3. TCP 에서 Segment 풀어서 Socket I/O Buffer 채우기 - 순서 필요, ACK 발생, 여유공간 필요

4. Proccess 의 Buffer 로 Receive 해서 copy 하기

 

네트워크 장애    TCP 운영체제 수준에서 보정함

1. Loss - 유실

2. Retransmission - 중복해서 받음, ACK 여러번 받음

3. Out of oder - 순서 다르게 들어옴

4. Zero Window - Proccess 버퍼 공간 없음


IPv4 Header

TCP와 UDP  /  TCP는 배려남, UDP는 나쁜남자다.

 

TCP

TCP에만 연결(Connection, Session) 개념이 있다.

연결은 결과적으로 순서번호로 구현된다.

연결은 '상태(전이)' 개념을 동반한다. (연결 전, 중, 후) 

 

TCP 연결 과정 (간략)

1. Server는 socket 을 생성해서 열고 연결을 대기함

2. Client 프로세스가 socket 을 생성해서 열면 PID 에 운영체제가 TCP Port 번호를 할당

3. TCP 연결 192.168.0.10 : 3000   →   192.168.0.20 : 80   

4. L2 ... R ... L2 해서 전달

 

TCP 연결 과정 (3-way handshaking)

1. Client 가 랜덤으로 SYN(1000) 생성해 전송 

2. Server 가 랜덤으로 SYN(4000) 생성 + ACK(1001) 생성해 전송

3. Client 가 ACK(4001) 생성해 전송

 SYN 및 정책 교환 (MSS, Maximum Segment Size)

→ Client  SYN_SEND, ESTABLISHED 상태로 전이

 Server  LISTEN, SYN_RCVD, ESTABLISHED 상태로 전이

 

TCP 연결 종료 과정 (4-way handshaking)

1. Client 가 FIN + ACK 전송

2. Server 가 ACK 전송

3. Server 가 FIN + ACK 전송

4. Client 가 ACK 전송

 Client  ESTABLISHED, FIN_WAIT1, FIN_WAIT2, TIME_WAIT, CLOSED 상태로 전이

 Server  ESTABLISHED, CLOSE_WAIT, LAST_ACK, CLOSED 상태로 전이

 

 

 

TCP Header

당연히 통신이니 Source port/ Destination port

연결해야하고 신뢰있으니 Sequence number / Acknowledgement number

헤더 길이, 해석 Data offset / Reserved 와 Flag들 / Window Size 

Checksum, Urgent pointer

Option

 

 

UDP

UDP Header

통신이니 Source port / Destination port

Length / Checksum

 

 

서버에 다양한 client 가 물려있고 속도가 다 다름

이때 TCP 사용하면 가장 느린 애를 기준으로 모두 하향평준화됨

UDP 는 빠른 애는 빠르게 처리해줌

 


질문1 : 파일 다운로드 중 LAN 케이블 분리 후 연결하면 TCP 연결은?

→ TCP  L4 연결 L1 랜선 연결을 끊은 거임

 따라서 TCP 연결은 유지됨 (오래되면 끊김)

 연결을 계속 재확인하는데 Heart beat 라고 함

 

SYN 연결요청 보내고 SYN + ACK 받으면 그냥 연결되었다고 앎    그냥 전화 받았다고 상대방인줄 앎   보안성이 없음

기밀성, 무결성, 가용성이 없다  연결을 신뢰하면 안된다.


Subnet Mask와 CIDR

Subnet Mask

목적지 IP 판단할 때 사용 : Network ID / Host ID 랑 Subnet Mask 랑 AND 연산 사용

 

CIDR(Classless Inter-Domain Routing)

192.168.0.10/24 : 24가 Subnet mask == 연산 사용

 

Subnetting

---

 


Broadcast IP 주소

목적지 IP : 3.3.3.3 - 데이터를 라우팅해서 게이트웨이 거쳐서 인터넷까지 연결

목적지 IP : 192.168.0.255 - 로컬 네트워크까지만 공유

 

Host 자기 자신 IP 주소 : 127.0.0.1

PC 에서 실행중인 프로세스끼리 통신을 해야할 때 편리하게 사용


TTL과 단편화

인터넷은 라우터의 

인터넷은 라우터의 집합체라고   있는

논리 네트워크이다.

 

Router vs L3 Switch 포함관계? 논란 / 의미는 없음

 

인터넷의 핵심 구성요소

Router + DNS

Router : 정보가 거쳐가는 

DNS : 분산 구조형 데이터베이스

naver 로 접속하려고 하는데 TCP/IP 를 알아야하는데 우리는 모름

114로 가게에 연결하는 것처럼 DNS 을 거쳐서 도메인에 해당하는 IPv4로 연결됨

 

URL 주소 : www.naver.com  에서 www는 naver에 naver 는 com 에 포함됨

naver.com 은 Domain Name 이고 www는 Host Name 임

ko.wikipedia.org/ 는 org 안에 wikipedia 있고 호스트는 ko 임 

 

분산 구조형?

우리가 Domain Name 보내면 ISP-DNS 거쳐서 IP 받아야함  (유효기간 있고 지나면 다시 물어봐야함)

PC마다 받은 DNS를 저장하는 DNS Cache 존재함

우리 컴퓨터 Hosts 파일에 정의하면 DNS 안거치고 바로 연결 가능

DNS < COM 담당 DNS < ... < Root DNS 이렇게 계층적 구조임

 

 

TTL 단편화

TTL (Time To Live): Hop 마다 감소하는 패킷의 생명시간

단편화 : MTU크기 차이로 발생 -> 수신 End-point 에서 조립

1. IP|A + IP|B 들어옴

2. IP에서 IP|AB조립

3. TCP에서 Segment  추출

--> 단편화 안하려구 가장 작은 MTU 보내는 방법 사용함

 

단편화 발생 : VPN IPSec 등이 적용되며 생김  추후정리

 

 

L3

IP주소 :

Subnet mask

Gateway IP

 

DNS 주소

 

자동으로 IP 주소 받기 : DHCP 사용하겠다

   DHCP(Dynamic Host Configuration Protocol) : 주소를 할당하는 서버와 할당 받으려는 클라이언트로 구성된다.

  1. PC 전원 On
  2. Broadcast 전송
  3. DHCP Server 있는지 확인
  4. 응답해줌
  5.  주소 써도돼? 안되면 딴거 

 

ARP(Address Resolution Protocol)

: IP주소로 MAC 주소를 알아내려할  사용된다.

: ARP Request gateway IP인사람? ->  MAC 

 

: 보통 PC 부팅하면 Gateway MAC 주소를 알아야함

-> gateway IP 192.168.0.1 이라고 하면

-> 192.168.0.100  네이버 3.3.3.3 접속하려하면

-> L3 에서는 IP  알면 

-> 근데 Gateway 까지는 L2 Frame 기반 스위칭/라우팅이니 MAC주소 필요함

-> Gateway  MAC 주소가 필요함

 

NIC MAC주소 잇고 IP  IPv4 주소 있음


Ping  RTT

Ping : 프로그램은 특정 Host  대한 RTT(Round Trip Time) 측정할 목적으로 사용된다.

ICMP 프로토콜을 이용한다.

DoS(Denial of Service) 공격용으로 악용되기도 한다.

 

RTT(Round Trip Time) = Client 프로세스가 Socket 열어서 Server 랑 연결하려고 segment 보내고 돌아 온 시간


URL과 URI

Resource = File 이라고 생각

Uniform Resource Locator : 위치

Uniform Resource Identifier : 식별자

 

즉 Protocal://Address:Port 에서 Host 특정하고

이후 number/Path(or filemane)?Parameter=value 로 파일 경로 찾아서 띄우기

이때 web 으로 확장하면 파일 경로가 Server 에 연결되어 있다는 거임


HTTP

: HTML 문서를 전송 받기 위해 만들어진 응용프로그램 계층 (L7) 통신

L5 는 Socket + Stream 시작과 끝이 정해져야함

일반 / 응답 / 엔티티 헤더가 있음

요청에 사용되는 메서드는 주로 GET, POST 

 

https://velog.io/@rhdmstj17/CS-%EC%A0%95%EB%A6%AC-Network-3-%EC%9B%B9%EC%84%9C%EB%B9%84%EC%8A%A4%EC%9D%98-%EC%A0%84%EC%B2%B4%EC%A0%81%EC%9D%B8-%EA%B5%AC%EC%A1%B0-%EA%B7%B8%EB%A0%A4%EB%B3%B4%EA%B8%B0


정리

네트워크와 연결된 Computer는 Host다.

이때 Switch는 MAC 주소 있고, IP 주소 있고, 데이터(L3,Packet) 전달 가능하니 그냥 네트워크 그 자체를 이루는 Host (Infra) 이다.

위의 네트워크 Infra 를 사용하는 주체는 End-point 라고 한다.

→ 컴퓨터 + 네트워크면 Host구나

→ Switch 는 네트워크 자체를 이루고 있으니 Host 이면서 Infra 구성요소구나

→ End-point 는 네트워크 (Infra) 사용만하는구나

→ End-point 도 컴퓨터 + 네트워크이니 Host겠지?

 

L2 Frame 단위고 L3 IP Packet 단위이다.

Broadcast 는 MAC 주소로 뿌리고 전체에 뿌리니까 범위설정이 중요하고 가끔 뿌려야한다.