L7
DNS (Domain Name Service)
- 인터넷의 일종의 호스트 주소록 서비스
- 도메인 주소를 IP 로 변환해 주는 서비스
동작 방식
- DNS 에 먼저 가서, IP 값을 받은후 IP 로 웹서버를 접속
명령어
명령어 : $ nslookup “주소”
위의 명령어를 통해 해당 주소의 IP 주소를 알 수 있다.
지원하는 기능 (레코드 타입)
- A: 도메인에 대한 IP 응답
- NS: 특정 도메인의 Name Server 정보 응답
- CNAME: canonical name 설정
- MX: 도메인의 메일 수신 서버 주소를 응답
- TXT: 임의 문자열 부가 정보 관리, SPF, DKIM 용으로도 사용
- SRV: IP 외에 Port 번호까지 서비스 가능
명령어 ex : $ nslookup -q=a “주소”
전체 구성
- 자신의 도메인은 자신이 책임 지는 구조
DNS Query Flow
- 확인을 할수있는 것은 1,8번 이지만 LocalDNS 에서 위와 같은 동작으로 도메인 주소에 대한 IP를 얻어온다.
L4
UDP (User Datagram Protocol)
- unreliable
- 별 다른 고려 없이 보냄
TCP (Transmission Control Protocol)
- reliable
- 신뢰성, 순서 맞춤, 데이터가 누락되지 않게 보냄
Well-Known 포트
Tcp 세그먼트 구조
- Source Port : 송신 포트
- Destination Port : 수신 포트
- Sequence Number : 순서 번호
- Acknowledge Number : 어디까지 잘 받았는지, 다음 번 보낼 패킷의 Sequence Number 를 응답
Tcp 커넥션 맺기 (3 way handshake)
- 연결 요청 SYN 전송
- SYN 에 대한 응답으로 ACK
- 답변을 받았다고 ACk 보냄
- 만약 데이터를 주고 받다가 누락되었을 때 어떤 방식으로 해결할까?
송신측
- 특정 시간(타이머)동안 보낸 패킷에 대한 ACK 패킷이 없는 경우 retransmission 해당 패킷을 재전송한다.
- Duplicated ACK가 3번 오면, 재전송한다.
수신측
- 중간 누락 패킷이 있는 경우, 순서가 맞는 마지막 패킷의 ACK 를 계속 전송
Tcp 커넥션 꾾기 (4 way handshake)
- 연결을 종료하기 위해 FIN 전송
- 응답으로 ACK를 전송
- 연결 종료의미로 FIN 전송
- 이에 응답으로 ACK 전송
L3
IP (Internet Protocol)
Ip 구조
- TTL(Time To Live) : 네트워크에서 데이터의 유효 기간을 나타냄
- Protocol : 프로토콜의 종류를 명시
- 6 : TCP 를 나타냄
- 17 : UDP 를 나타냄
- Checksum : 중복 검사
- IP
IPv4 Address
- 4bytes
- 보통 한 바이트 씩 숫자로 읽어서 표시 172.21.75.192
- IP : 172.21.75.192
- netmask : 255.255.0.0
- Ip와 netmask 를 and하여 라우터의 주소를 알수 있다.
- router : 172.21.0.1
- 여기에서 라우터는 65052개의 단말기를 처리할 수 있다.
IP Addressing : CIDR (Classless InterDomain Routing)
- 임의의 길이로 서브넷을 할 수 있음
- a.b.c.d/x 형식
- 172.21.0.1/16 으로 적는다 뒤에 16은 16개를 1로 할당한다는 것을 의미
A class , B class , C class 는 a,b,c,d/x 형식으로 작성하면 어떻게 표현할까?
/8 -A class , /16 -B class, /32 -C class
NAT Network Address Translation
- IP 고갈을 걱정하여 만들어 낸 기능
- NAT를 이용하는 이유는 대개 사설 네트워크에 속한 여러 개의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위함이다.
- 다시말해 NAT 를 사용할 경우 내부 네트워크 내에서는 사설 아이피를 사용하여 분리하고 외부로 나갈때는 하나의 공인 아이피를 사용하여 나가게 된다.
ICMP
- 네트워크 상태를 보고하기 위한 메세지
- TTL 을 넘어가는 경우, source 에 알려준다.
L2
미디어 에 대한 접근을 제어
- MAC (Media Access Control) : 컴퓨터간 데이터를 전송하기 위해 있는 컴퓨터의 물리적 주소
- 충돌이 나지 않도록 관리
MAC 프로토콜의 종류
channel partitioning
- TDMA : Time Division Multiple Access - 시간을 나눠서 해결
- FDMA : Frequency Division Multiple Access - 주파수를 나눠서 해결
Random access
- CSMA : Carrier Sense Multiple Access : 아무도 이야기하지 않는 것 같으면 보내기
- CSMA/CD : CSMA/ Collision Detection : Ethernet
- CSMA/CA : CSMA / Collision Avoidance : WIFI
CSMA/CD , CSMA/CA 동작방식
- 아무도 이야기 하지 않는 것 같으면 데이터 전송 시작
- 만약 보내는 동안 다른 데이터가 내게 도착하면 충돌이라 판단
- 충돌이 감지되면 보내던 데이터를 끊고, 랜덤(모두 똑같이 쉬게 되면 계속 충돌 발생)하게 쉬고 재전송
taking turns
- 중간에 중재자를 두는 케이스
- 토큰을 돌려가며 사용하는 케이스
Ethernet
Ethernet Frame 구조
- Destination MAC Address - 6bytes (목적지 MAC 주소)
- Sourve MAX Address - 6bytes (출발지 MAC 주소)
- EtherType
- 데이터의 프로토콜 명시 대부분 IP
- Data
- CRC
링크 레이어에서 데이터의 이동
dst MAC | src MAC | src IP | dst IP |
---|---|---|---|
R1 | 노트북 | 노트북 IP | 웹서버 IP |
R2 | R1 | 노트북 IP | 웹서버 IP |
R3 | R2 | 노트북 IP | 웹서버 IP |
R4 | R3 | 노트북 IP | 웹서버 IP |
웹서버 | R4 | 노트북 IP | 웹서버 IP |
다음 홉의 MAC 주소는 어떻게 알 수 있을까?
- 포워딩 테이블을 보고 다음 홉을 판단
- ARP 테이블을 보고 다음 홉의 MAC 을 판단
- ARP 테이블에는 IP주소,MAC주소,TTL값을 가지고있다.
ARP (Address Resolution Protocol)
- 네트워크 상에서 IP 주소와 MAC 주소를 매핑하기 위해서 사용
- Ethernet Frame 목적지 주소를 브로드캐스팅으로 요청
- ex) Who has x.x.x.x? Tell x.x.x.x 처럼 물어본다.
ARP 구조
- Sender Hardware Address
- Sender Protocol Address
- Target Hardware Address
- Target Protocol Address
LAN (Local Area Network)
- 라우터를 거치치 않고 접근 가능한 영역
- 공유되는 media 로 연결된 집합
Ethernet 토폴로지
- Bus 형
- Star 형 - 스위치 벙식