수업 노트 - 네트워크 기초

개인적인 참고 용도입니다

 

 

구글과 나는 어떻게 연결되나

tracert 8.8.8.8

리눅스에서 traceroute (UDP 패킷 보냄)

tracert는 ICMP Echo Request

-> 11단계

 

OSI7 계층 모델

 

 

 

 

 

 

 

2계층 Data Link Layer

물리주소로 MAC 주소 사용

이더넷 프로토콜 

 

 

 

이더넷 : 1980년에 처음 개발되었으머 1983년에 IEEE802.3으로 표준화 됨. 

여러 컴퓨터가 동시에 데이터를 보낼 수 있음

Collision handling : Carrier Sense Multiple Access - Collision Detection (SCMA/CD)

 

 

 

 

 

 

WLAN

 

 

ARP

- 같은 네트워크 대역에서 MAC주소를 알아오기 위해 사용함

 

 

ARP 테이블 확인하기

arp
man arp

arp -a

224.0.0.~~ 멀티캐스트

 

 

실습 ARP 프로토콜 확인

 

ARP 뒷부분 패딩은 프레임의 최소 크기 60바이트를 맞추기 위해

 

APP 28바이트 + 이더넷 14바이트 = 42바이트라서 최소 60맞추려고 마지막에 아무숫자나 붙임

 

목적지 맥주소 몰라서 FF:FF:FF:FF:FF:FF로 날림

 

 

 

L3 Network Layer

 

 

 

ICMP

(Internet Control Message Protocol, 인터넷 제어 메시지 프로토콜)

특정 대상과 내가 통신이 잘되는지 확인하는 (Error Reporting Protocol)

 

 

요청 : 8

응답  : 0

목적지 못 찾으면 3

시간초과 : 11

 

 

 

 

 

IP : Internet Protocol

Addressing Hosts, Encapsulating data inot packets, Rouoting packets from a source to a destination

 

IP is connectionless

Doesn't care if the packet has reached to the destination

 

 

IPv4 : 32 bit

IPv6 : 128bit -> 헤더가 간단하지만 길다

 -> 아이피 주소가 많으므로 NAT 같은 거 필요 없으니 효율적임 (End-to-End Connectivity)

 -> Auto-Configuration

 -> Faste Routing / Forwarding

 -> IPSec -> IP Layer에서 보안 통신

 -> No Broadcast

 -> Mobility (같은 IP 로 전세계에서 통신)

 -> Extensibility -> 옵션 파트에 더 많은 정보 넣을 수 있음

 

 

 

 

IPv6 헤더

 

32 hexadecimal numers

 -> 0이 반복되면 생략

 

IPv6 주소 구조

 

DHCP - Dynamic Host Configuration Protocol

 

 

 

1) Discover

IP 몰라서 000. 브로드캐스트라서 255255255255

 

2) Offer

IP 돌려줌, 맥주소 제대로 봼

 

3) Request

아까 보내준 IP로 요청

 

4) ACK

 

IPv4 프로토콜 구조

 

 

Total Length : 16bit

Flag : 

  • bit 0: Reserved; must be zero
  • bit 1: Don't Fragment (DF)
  • bit 2: More Fragments (MF)

IPv4 Subnetting

 

서브넷마스크

 

 

 

IPv4 조각화

ping 192.168.0.51 -l 4800

4800보내면 쪼개짐

 

1480+IPv420 -> 1500이니 MTU 1500 통과하고 나서 이더넷 14 붙어서 전체 1514

 

ICMP 368+IP 20 +이더넷14 = 402

 

 

 

 

 

 

 

4계층 - Transport layer

System Reliability and Quality Ensured!

상위 레이어에서 받아서, 작은 조각으로 쪼개고, 네트워크 레이어로 보냄.

모든 유닛이 잘 도착하는지, 순서대로 되는지 확인함

 

Well-Known 포트 번호

Registered 포트 번호 (일부)

Dynamic 포트

 

 

UDP

 

 

UDP ->신뢰성이 낮음. 일반적으로 오류의 검사와  수정이 필요 없는 프로그램에서 사용

 

 

Source Port, Checksum -> Optinoal

 

 

UDP 프로토콜을 사용하는 프로그램

 - DNS 서버

 - TFTP 서버 (파일 전송)

 - RIP 프로토콜  

 

 

 

TCP -> 연결지향형. UDP 보다 안정적.

 - Connection Oriented

 - Data fragmentation

 - Error-Free

 - Flow Control

 

 

일반적인 길이는 20바이트, 최대 60바이트까지 가능

 

 - Offset -> 헤더 길이와 동일 (나누기 4한 것)

 

TCP의 플래그

 

 

 

TCP를 이요한 통신과정

  3Wy Handshake

 1. 클라이언트가 서버에게 요청 패킷을 보내고

2. 서버가 클라이언트의 요청을 받아들이는 패킷을 보내고

 3. 클라이언트는 이를 최종적으로 수락하는 패킷을 보낸다

 

 

 

 

d

 

Flow Chart - nate.com

Seq No는 임의로 설정되나 와이어샤크에서 쉽게 볼 수 있도록 0, 1 등으로 변경하여 보여줌

 

 

 

Handshake 이후에 데이터를 포함하여 통신해도 기존 SEQ 번호와 ACK번호는 계속 연결됨

데이터 크기

1460

 

 

 

NAT와 포트포워딩

 

HTTP 요청 프로토콜의 구조

 

 

 

 

Request Line의 구조

요청 타입의 종류

 

 

 

 

예시

 

 

URL 예약 문자 : 

 ? 파라미터가 시작된다는 것을 알려줌

 = 파라미터 값 대입

 & 다음 파라미터 식별자

 + 공백

 ! * ' ( ) ; : @ $ , / # [ ] 그 외 문자..

 

데이터에 예약문자가 들어가면 데이터 Body에 그대로 전송이 될까? &

 

 

 

 

 

 

 

 

 

 

HTTP 헤더

 

 

 

 

POST Method로 바꿀 경우 Content-Type도 있어야 함.

서버측의 행위가 필요할 경우에는 POST 사용

단순히 자원을 얻고 싶으면 GET -> 중복 액션을 요청할 수도 있음 개발자는 그에 맞춰 사용

 

 

 

쿠키

 

 

지속쿠키 - 하드디스크에 저장되어 열람이 가능

폐기가 안 될 경우 서버에 다시 요청 가능

 

 

 

 

세션쿠키

 

 

 

 

 

 

 

 

 

 

 

 

라우팅 테이블
netstat -r

활성연결테이블
netstat -ano

 

 

 

 

 

 

댓글

Designed by JB FACTORY