22.03.07 [이론]

김스타·2022년 3월 14일
1

OSI 7계층

목록 보기
1/7

IT infra (Network, Server, Storage) | > 가상화!!! > Datesenter

Cloud = 자동화!

하이퍼바이저
: 가상화를 만들어주는 조종자

가상화 핵심
: 리소스를 얼마나 효율적으로 분배해주는가


DATA 통신에서 DATA 구조
1. DATA의 구조 >>>>19p, 62p ~ 66p
L3 | L4 | AH (L7, L6, L5) DATA
AH의 역할 > Application의 정보 제공
L4의 역할 > Application을 찾아줌 (Port Number) ......
L3의 역할 > Host를 찾아줌 (IP Address) ...... > (L3의 역할이 경로를 찾아주는거로 끝나지 않음)
L2의 역할 > Host를 찾아줌 (MAC Address) ..........

>> 단말을 IP로 찾는 경우와 MAC으로 찾는 경우 차이점!!

1.1 Application Header >> Layer 7 (L7)

  • Data를 생산하는 주체? Application : 카카오톡, HTTP(웹브라우저), HTTPs, DNS, TELNET......
    ex) application 사용 이유 : 데이터를 이용하려고, 부가가치 생성.
  • Header (DATA에 대한 정보)
    ex) 버전 업데이트하라는 이유? : 부가적 정보 및 버전 호환 정보 등을 얻으려고.
  • Application Header | DATA |
  • Application에 대한 정보가 있음

연결이 종료됐다 = 세션 종료

5,6,7을 합쳐서 Application Header라고 부른다.

1.2 TCP, UDP Header >> Layer 4 (L4)

  • netstat -na
    TCP 192.168.0.88:49836 20.198.162.76:443 ESTABLISHED
    TCP 192.168.0.88:50813 104.18.24.243:80 ESTABLISHED
    포트번호마다 웹브라우저 지정(방번호지정)
  • Port Number
  • |TCP 1024 80| AH | DATA |
  • Application을 찾아 주는 역할

1.3 IP Header >> Layer 3 (L3)

  • ipconfig
    IPv4 주소 . . . . . . . . . : 192.168.0.88

  • IP(Internet protocol) : Data통신에서 사용되는 주소

  • |192.168.0.88 192.168.0.89 | Application Header | DATA |
    보내는 사람 받는 사람 부가적 정보

  • Data의 전달을 위한 주소

  • 단말(HOST)를 찾아 주는 역할

  • |192.168.0.88 192.168.0.89 | 방번호 | Application Header | DATA |
    우리집 아빠?엄마?

1.4 Ethernet Header >> Layer2 (L2)

  • ipconfig /all
    MAC 주소 = 물리적 주소 . . . . . . . . : 6C-2B-59-FA-2C-E7
    ex) 우편번호랑 집주소랑 두 개 = MAC 주소랑 물리적주소 두 개
    같이 있을 때(좁은 공간)는 맥주소, (물리적으로)멀리있을 때는 IP주소
  • Data통신에서 (유선과 무선사용시) 사용되는 주소
  • |6C-2B-59-FA-2C-E7 6C-2B-59-FA-2C-E9 |192.168.0.88 192.168.0.89 | Application Header | DATA |
  • 단말(Host)를 찾아 주는 역할
    유선 - 이더넷 / 무선 - 와이파이

www.wireshark.org -> data를 열어보는 tool


  1. Data 통신에서 각각 Header의 역할 >>>>19p, 62p ~ 66p
  • Header(편지봉투)는 DATA가 목적지까지, 전달되고 잘 이용할 수 있도록 해주는 기능
  • Header는 L2, L3, L4, AH(L5,L6,L7)가 있다.
    	>> 각각의 Header를 확인하는 방법은 Wireshark를 이용
        >> 각각의 Header의 다양한 역할이 있다.

L2 | L3 | L4 | AH (L7, L6, L5) DATA
AH의 역할 > Application의 정보 제공
L4의 역할 > Application을 찾아줌 (Port Number) ......
L3의 역할 > Host를 찾아줌 (IP Address) ......(L3의 역할이 경로를 찾아주는거로 끝나지 않음)
L2의 역할 > Host를 찾아줌 (MAC Address) ..........

MAC add 경로를 찾아줌 - 스위치(l2)
IP 경로를 찾는다. - 라우터(l3)

PC -------- SW -------- Server
(www.me.go.kr)

Step.1 PC1에서 www.me.go.kr을 입력한다.

   >> PC1은 http application이 아래와 같은 Data를 생성한다.
   HTTP | get : www.me.go.kr의 Page를 보여주세요 |
   HTTP 포트 번호 : 80

Step.2 PC1에서 L4 Header를 붙임

    >>L4 1024 80 | HTTP | get : www.me.go.kr의 Page를 보여주세요 |
    back L4  80 1024| HTTP | www.me.go.kr의 페이지입니다 200 ok |
  • (내컴퓨터)소스 포트 번호 : 랜덤
    	>> 1 ~ 65535(1024~65535)
               ex) 웹브라우저를 이론적으로 몇 개까지 열 수 있나? 65535개 가능
    	>> Source 주소 (보내는 사람) >> 랜덤
    	>> Destination 주소 (받는 사람) >> Application에 의해 지정

Step.3 PC1에서 L3 Header를 붙임

  • L3 1.1.1.1 1.1.1.2 | L4 1024 80 | HTTP | get : www.me.go.kr의 Page를 보여주세요 |
    L3 1.1.1.2 1.1.1.1 | L4 80 1024 | HTTP | www.me.go.kr의 Page입니다 |

    1.0.0.0 - 255.255.255.255
    Source 주소 : 1.1.1.1 보내는 사용자
    Destination 주소 : 1.1.1.2 받는 사람(서버)

Step.4 PC1에서 L2 Header를 붙임

  • L2 B A | L3 1.1.1.1 1.1.1.2 | L4 1024 80 | HTTP | get : www.me.go.kr의 Page를 보여주세요 |
    B가 목적지 나머지는 뒤가 목적지

    0000.0000.0000 FFFF.FFFF.FFFF (16진수)
    Source 주소 : AAAA.AAAA.AAAA 보내는 사용자
    Destination 주소 : BBBB.BBBB.BBBB 받는 사람(서버)

Step.5 PC1에서 Data 출발


  1. Data 통신에서 각각 Header의 주소 >>>> 30p ~31p, 24p ~ 27p
    L4 : Port Number (Source Port : 랜덤, Destination Port : Application에 의해 지정(약속))
    >> netstat -na
    L3 : IP Address (Source IP : 자신의 IP, Destination IP : 목적지 IP(DNS)
    >> 관리자가 지정(IP는 계획에 의해 관리자가 지정함) DHCP
    >> ipconfig
    L2 : MAC Address ( Source MAC : 자신의 MAC, Destination MAC : 목적지 MAC)
    >>NIC 제조사가 지정함 (변경안됨?) |
    >> ipconfig /all

LAB01
LAB: L2/L3/L4 address
문제1. 현재의 구성도에서 Layer 1 은 무엇입니까?

    >>> 전기신호, UTP Cable

문제2. 현재의 구성도에서 Layer 2는 무엇입니까? 또한 L2의 Header에 주소는 각각 무엇입니까?

    >>> Ethernet
    >>> ipconfig /all
             (SRC MAC : 0001.96E7.1787)
     (DST MAC : 0002.1770.326E)
    >>> 제조사에 의해 지정되어 있음

문제3. 현재의 구성도에서 Layer 3는 무엇입니까? 또한 L3의 Header에 주소는 각각 무엇입니까?

    >>> IP(Internet Protocol)
    >>> IPconfig
     (SRC IP : 1.1.1.1)
     (DST IP : 1.1.1.2)
    >>> 관리자에 의해 지정

문제4. 현재의 구성도에서 Layer 4는 무엇입니까? 또한 L4의 Header에 주소는 각각 무엇입니까?

    >>> TCP (Transport Control Protocol)
    >>> netstat -na
     (SRC Port : 1026)
     (DST Port : 80)
    >>> Destination Port는 Application에 의해 지정, Source Port는 랜덤으로 지정

예제1. 자신의 PC에서 www.me.go.kr로 접속시에, L2,L3,L4,AH의 정보를 확인하세요.
step.1 Wireshark를 이용하여, PC의 NIC를 Capture한다.
Step.2 www.me.go.kr을 접속하고 capture를 중단한다.
Step.3 http.host==me.go.kr로 특정 traffic만 필터링한다.


  1. Layer별 주소 상세 >>>> 45p ~ 57p

    • 상대방 주소 알아오는 방법!

    MAC Address

  • L2에서 사용하는 주소
    ARP : 상대방의 MAC 주소를 알아오는 방법
    상대방의 맥을 알아야 arp를 띄울 수 있다.
    - L2 FFFF.FFFF.FFFF AAAA | ARP | 1.1.1.2는 MAC Address가 무엇입니까? |

    	      >> ARP Request는 L3, L4 Header가 없음.
    	      >> ARP Request는 L2의 Header의 Destinatio MAC은 FFFF.FFFF.FFFF로 보냄(Broadcast 주소)
    • ARP Reqeust에 대한 응답이, ARP Reply이며, ARP Reply에 의해, arp -a table이 생성

      		>arp -a
      		- 제조사에서 지정함(48bit) >> 16진수로 표기함
      		     1 2 3 4 5 6 7 8 9 A B C D E F
      		XXXX.XXXX.XXXX 4*12 = 48bit
      		1 > 1
      		2 > 10
      		3 > 11
      		- 앞자리 24 bit (OUI)로 제조사를 나타냄
      		- ipconfig /all, arp -a (arp -d)

      질문1. ARP가 필요한 이유는 무엇입니까?

      		>>> 목적지 IP에 대한 MAC 주소를 알아오기 위해서 필요

      질문2. ARP Request message의 Destination MAC 주소는 무엇입니까?

      		>>> ARP Request의 L2의 목적지 MAC은 알지 못하기 때문
      		>>> 그래서 누구나 받을 수 있는 Broadcast 주소를 이용한다.

      질문3. ARP Table의 역할은 무엇입니까?

      		>>> ARP Request에 대한 응답(ARP Reply)에 의해, 상대방의 MAC 주소를 기록!!
      		>>> arp -a, arp -d(삭제)

PC1, PC2에서 SERVER와 통신이 이루어지기 위해, 발생되는 ARP REQUEST는 몇 번인가?
2번.
PC2는 ARP REQUEST를 총 몇 번 받는가?
2번, 응답은 1번
다시 PC1, SERVER 간에 통신이 발생되면, ARP는 다시 발생하는가?

IP Address

>> L3에서 사용하는 주소
>> 10진수로 표기함 4개의 부분으로 구성 1.1.1.1
>> 32bit (8bit.8bit.8bit.8bit) >> 1111 1111 >> 255
>> 1.0.0.0 ~ 255.255.255.255 (43억 개의 주소)
>> ip를 관리하는 곳? http://www.iana.org/ 
> 한국에서 받는 곳? KISA > 외부와 연결?? KT, LGU, SKB(ISP) -> IP 받는 곳
>> IP = 돈!(IPv4 -> IPv6(무한대-128bit))
>> 1.30.245.1 사용가능. 251.233.194.241 있을 수 있음. 근데 256.1.2.3은 없음.
>> IP Address 구조 172.16.1.1
	Network 부분 + Host 부분으로 구성됨, Subnet mask를 기준으로 분리함
	     >> Network 주소는 host 부분을 0으로 표기함
	     >> host 주소는 Network 부분을 제외한 주소
	172.16.1.1 255.255.255.0
	    1. 위의 IP의 Subnet mask는 255.255.255.0이다.
	    2. subnet mask가 255로 표기된 부분이 network 주소 : 172.16.1
	    3. subnet mask가 0으로 표기된 부분이 host 주소      : .1

		IPv4 주소 . . . . . . . . . : 192.168.2.88     >> 192.168.2.0 (host부분을 0으로 표기)

서브넷 마스크 . . . . . . . : 255.255.255.0 >> 88

	★★규칙 : Switch에 연결된 Host들의 Network 주소는 일치해야 한다.★★
	규칙 : Router에 연결된 Host들의 Network 주소는 상이해야 한다.

예제1. 172.16.1.1 255.255.255.0의 IP를 사용하는 Host의 Network 주소는 무엇입니까?
정답 : 172.16.1.0
예제2. 위 IP가 속해있는 Switch에 연결된 단말은 최대 몇 대까지 사용 가능할까?
정답 : 254 -> 255는 브로드캐스트가됨(??)
예제3. 위 IP가 속해있는 Network에서 사용하는 Broadcast 주소는 무엇입니까?
정답 : 172.16.1.255(Host 부분이 모두 1로 표기)
예제4. 172.16.1.1 255.255.0.0의 IP를 사용하는 Host의 Network 주소는 무엇입니까?
정답 : 172.16.0.0
예제5. 위 IP가 속해있는 Switch에 연결된 단말은 최대 몇 대까지 사용 가능할까?
정답 : 65534 (172.16.0.1 ~ 172.16.255.254)
2^8 - 2

Port Address
통신 방법 2가지
1. Unicast - 1:1로 보내는 방법

unicast 통신방법은 목적지 주소를 지정(목적지) 주소로 사용
1.1.1.1
aaaa.aaaa.aaaa >>
aaaa.aaaa.aaab
2. Broadcast - 1:all로 보내는 방법
broadcast 통신방법은 목적지 주소를 지정된(예약된) 주소 사용
255.255.255.255 ->모든 사람이 열어보도록 약속한 주소
ffff.ffff.ffff ->모든 사람이 열어보도록 약속한 주소


LAB : L3(IP address) 172.16.10.1 255.255.255.0

문제1. 현재 사용하고 있는 IP address의 Subnet 주소는 무엇입니까?

>. 255.255.255.0 or  /24

문제2. 현재 사용하고 있는 IP address의 Network 주소는 무엇입니까?

>> 172.16.10.0 (host 부분이 모두 0인 주소)
>> 172.16.10.0./24

문제3. 현재 사용하고 있는 IP address의 Broadcast 주소는 무엇입니까?

>> 172.16.10.255 (host 부분이 모두 1인 주소)(특정)
>> 255.255.255.255(모두)

문제4. 현재 사용하고 있는 IP address와 동일한 Network에서 사용할 수 있는 IP의 범위와 개수는 몇 개 입니까?

>> 172,16.10.1 ~ 172.16.10.254(254개를 사용할 수 있다.) -> 네트워크 주소와 호스트 주소 2개를 제외 "2^n-2"

LAB : ARP(Address resolution protocol)
문제1. PC1, Server에서 “arp –a”로 ARP Table을 확인 하세요.
문제2. PC1에서 PC2로 ICMP Message를 보내기 전에 PC1에서 “arp –d”로 arp table을 삭제하세요.
문제3. PC1에서 PC2로 ICMP Message를 보내는 것을 확인 해보세요.
(ICMP Message가 전송되기 이전에, ARP Request, ARP Reply를 확인 하세요.)

STEP1. PC1에서 ping 1.1.1.2로 ICMP Request를 보냄
|L3 1.1.1.1 1.1.1.2 | ICMP | 1.1.1.2는 응답하라!!|
STEP2. PC1은 arp -a를 보니, 1.1.1.2에 대한 MAC 정보가 없음
STEP3. PC1은 1.1.1.2에 대한 ARP Request를 보냄
|ffff.ffff.ffff aaaa.aaaa.aaaa| ARP Request | 1.1.1.2의 MAC은 무엇입니까? |
STEP4. PC2는 ARP Request를 받지만, 폐기함
STEP5. Server ARP Request를 받고, arp table을 생성하고, ARP Reply로 응답함
aaaa.aaaa.aaaa bbbb.bbbb.bbbb | ARP Reply | 1.1.1.2의 MAC은 B이다 |
STEP6. PC1은 ARP Reply를 수신하고, arp table을 생성 후,
기존에 대기하고 있던 ICMP Data를 완성하고, 송신함

bbbb.bbbb.bbbb aaaa.aaaa.aaaa | L3 1.1.1.1 1.1.1.2 | ICMP | 1.1.1.2는 응답하라!!|

문제4. ARP(Request, Reply)가 필요한 이유는 무엇이며, ARP 의 형태는 어떠한지 확인하세요.

   >>> 특정 IP에 대한 MAC 주소를 알아오기 위해 필요하다.
  (L2 Header를 만들기 위하여, MAC 정보가 필요함)
      >> L2 Header를 붙이지 못하면, DATA는 출발하지 못함

0개의 댓글