ipconfig
Windows IP 구성
이더넷 어댑터 이더넷: ⇒ 이더넷 어댑터 = LAN 카드 = NIC(Network Interface Controller)
⇒ 이더넷 : LAN 영역에서 사용하는 통신기술 중 하나,LAN 영역에서 사용하는 기술 중 사실상 표준
이더넷 어댑터 VirtualBox Host-Only Network:
연결별 DNS 접미사. . . . :
링크-로컬 IPv6 주소 . . . . : fe80::946d:de21:8740:68fe%5
IPv4 주소 . . . . . . . . . : 192.168.56.1
서브넷 마스크 . . . . . . . : 255.255.255.0
기본 게이트웨이 . . . . . . :
무선 LAN 어댑터 Wi-Fi:
연결별 DNS 접미사. . . . : ⇒ IPv6 : 총 128 비트로 구성 ⇒ 2^128개의 주소 표현
링크-로컬 IPv6 주소 . . . . : fe80::ccb6:1421:71d3:dfd7%20
IPv4 주소 . . . . . . . . . : 10.133.19.237 ⇒ IPv4 : 총 32 비트로 구성된 주소 체계
서브넷 마스크 . . . . . . . : 255.0.0.0 0.0.0.0 ~ 255.255.255.255 ⇒ 2^32개의 주소 표현
기본 게이트웨이 . . . . . . : 10.128.128.128
이더넷 어댑터 vEthernet (Default Switch):
연결별 DNS 접미사. . . . :
링크-로컬 IPv6 주소 . . . . : fe80::7520:8916:dcab:cb4e%33
IPv4 주소 . . . . . . . . . : 172.17.131.1
서브넷 마스크 . . . . . . . : 255.255.255.240
기본 게이트웨이 . . . . . . :
ipconfig/all
Windows IP 구성
호스트 이름 . . . . . . . . : E485
주 DNS 접미사 . . . . . . . :
노드 유형 . . . . . . . . . : 혼성
IP 라우팅 사용. . . . . . . : 아니요
WINS 프록시 사용. . . . . . : 아니요
이더넷 어댑터 이더넷:
미디어 상태 . . . . . . . . : 미디어 연결 끊김
연결별 DNS 접미사. . . . :
설명. . . . . . . . . . . . : Realtek PCIe GbE Family Controller
물리적 주소 . . . . . . . . : E8-6A-64-97-3E-66
DHCP 사용 . . . . . . . . . : 예
자동 구성 사용. . . . . . . : 예
무선 LAN 어댑터 Wi-Fi:
연결별 DNS 접미사. . . . :
설명. . . . . . . . . . . . : Qualcomm Atheros QCA9377 Wireless Network Adapter
물리적 주소 . . . . . . . . : F8-A2-D6-DC-D1-89
DHCP 사용 . . . . . . . . . : 예
자동 구성 사용. . . . . . . : 예
링크-로컬 IPv6 주소 . . . . : fe80::ccb6:1421:71d3:dfd7%23(기본 설정)
IPv4 주소 . . . . . . . . . : 10.133.19.237(기본 설정)
서브넷 마스크 . . . . . . . : 255.0.0.0
임대 시작 날짜. . . . . . . : 2021년 1월 18일 월요일 오후 1:05:10
임대 만료 날짜. . . . . . . : 2021년 1월 19일 화요일 오후 1:05:10
기본 게이트웨이 . . . . . . : 10.128.128.128
DHCP 서버 . . . . . . . . . : 10.128.128.128
DHCPv6 IAID . . . . . . . . : 184066774
DHCPv6 클라이언트 DUID. . . : 00-01-00-01-24-95-74-4E-E8-6A-64-97-3E-66
DNS 서버. . . . . . . . . . : 10.128.128.128
Tcpip를 통한 NetBIOS. . . . : 사용
이더넷 어댑터 Bluetooth 네트워크 연결:
미디어 상태 . . . . . . . . : 미디어 연결 끊김
연결별 DNS 접미사. . . . :
설명. . . . . . . . . . . . : Bluetooth Device (Personal Area Network)
물리적 주소 . . . . . . . . : F8-A2-D6-DC-D1-8A
DHCP 사용 . . . . . . . . . : 예
자동 구성 사용. . . . . . . : 예
DHCP(Dynamic Host Configuration Protocol)
사용할 IP 주소 범위를 서버에 미리 등록하면, PC 사용자에게 IP 주소, 서브넷 마스크, 게이트웨이 IP 주소, DNS 서버 IP 주소 등을 자동으로 할당해 주는 서비스
일반적으로 Gateway에서 DHCP 기능을 수행하도록 설정하는 경우가 많음(고로 게이트웨이주소와 DHCP 주소가 같은 경우가 많음)
DNS(Domain Name System) 서버
도메인 이름과 IP 주소의 대응 관계를 데이터베이스 형태로 저장해 제공하는 기능
물리적 주소 = MAC Address(Media Access Control Address)
LAN 카드에 새겨진 주소
LAN 영역에서 내부 통신을 수행하기 위해 필요한 주소
48비트로 구성 → OUI(Organizationally Unique Identifier, 24비트) + 일련번호(24비트)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
http://standards-oui.ieee.org/oui.txt 확인 가능
IP(Internet Protocol) 주소
인터넷 공간에서 자기 PC가 사용하는 고유한 식별자를 의미
IP 주소의 클래스 (등급)
구분 | IP 주소의 첫번째 자리 범위 | 대표적인 예 |
---|---|---|
A 클래스 | 1~ 126 // 0000 0001 ~ 0111 1110 | 8.8.8.8 → 구글에서 제공하는 DNS서버의 IP 주소 |
B 클래스 | 128 ~ 191 // 1000 0000 ~ 1011 1111 | 168.126.63.1 → KT에서 제공하는 DNS 서비스 IP 주소 |
C 클래스 | 192 ~ 223 // 1100 0000 ~ 1101 1111 | |
127.0.0.1 | 어떤 클래스에도 속하지 않음 | 자기가 사용하는 LAN 카드를 의미 → 루프백 주소 (Loopback Address) |
서브넷 마스크(subnet mask)
IP 주소에서 네트워크 ID와 호스트 ID를 구분하는 방법
IP Subnet mask 네트워크ID 호스트ID
10.10.10.10 255.0.0.0 10 10.10.10
172.16.10.10 255.255.0.0 172.16 10.10
192.168.10.10 255.255.255.0 192.168.10 10
네트워크 ID → 많은 LAN 영역에서 자기 LAN 영역을 구분하기 위한 식별자
호스트 ID → 해당 LAN 영역에 속한 호스트 각각을 구분하기 위한 식별자
게이트웨이(gateway) = 라우터
각기 다른 네트워크 ID를 사용하는 LAN 영역 사이를 연결해주는 기능
SW 측면을 강조 → 게이트웨이
HW 측면을 강조 → 라우터
라우팅(routing) vs 스위칭(switching)
라우팅 → 각기 다른 네트워크 ID를 사용하는 LAN 영역 사이를 연결해주는 기능 (다른 전화국 연결)
스위칭 → LAN 영역에서 MAC 주소에 기반해 내부 통신을 수행하는 동작 (같은 전화국에서 연결)
LAN 영역
장치(host, peer, node, server, client)
동일한 네트워크 ID를 공유하는 장치들의 집합적 공간
동일한 게이트웨이 주소를 사용하는 장치들의 집합적 공간
PC-A PC-B PC-C
IP 192.168.0.13 192.168.0.20 192.168.10.11
Subnet Mask 255.255.255.0 255.255.255.0 255.255.255.0
Default Gateway 192.168.0.1 192.168.0.1 192.168.10.1
네트워크 ID 192.168.0 192.168.0 192.168.10
~~~~~~~~~~~~~~~~~~~~~~
동일한 네트워크 ID를 사용
ARP
ARP 캐시테이블
C:\Documents and Settings\Administrator> arp -a
Interface: 192.168.94.128 --- 0x2
Internet Address Physical Address Type
192.168.94.2 00-50-56-ee-37-4a dynamic
C:\Documents and Settings\Administrator> arp -d
C:\Documents and Settings\Administrator> arp -a
No ARP Entries Found
C:\Documents and Settings\Administrator> ping 8.8.8.8 ⇐ 구글 DNS 서버가 정상적으로 동작하는지를 확인
Pinging 8.8.8.8 with 32 bytes of data:
Reply from 8.8.8.8: bytes=32 time=54ms TTL=128
Reply from 8.8.8.8: bytes=32 time=42ms TTL=128
Reply from 8.8.8.8: bytes=32 time=69ms TTL=128
Reply from 8.8.8.8: bytes=32 time=71ms TTL=128
Ping statistics for 8.8.8.8:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 42ms, Maximum = 71ms, Average = 59ms
C:\Documents and Settings\Administrator> arp -a
Interface: 192.168.94.128 --- 0x2
Internet Address Physical Address Type
192.168.94.2 00-50-56-ee-37-4a dynamic
C:\Documents and Settings\Administrator> ipconfig
Windows IP Configuration
Ethernet adapter 로컬 영역 연결:
Connection-specific DNS Suffix . : localdomain
IP Address. . . . . . . . . . . . : 192.168.94.128
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.94.2
ping 8.8.8.8 동작 순서
#1 출발지와 목적지 IP에서 네트워크 ID를 비교
출발지 목적지
IP 192.168.94.128 8.8.8.8
Subnet Mask 255.255.255.0 255.255.255.0
Network ID 192.168.94 8.8.8 ⇒ 네트워크 ID가 상이 ⇒ 목적지 주소를 게이트웨이 주소로 변경
#2 게이트웨이의 MAC 주소 확인을 위해 ARP 질의(Query)를 브로드캐스팅
출발지 목적지
IP 192.168.94.128 192.168.94.2
MAC 00-0C-29-52-AE-4B ?
#3 LAN 영역의 모든 호스트는 ARP 브로드캐스트 질의를 받고, 게이트웨이(192.168.94.2)가 자신의 MAC 주소를 유니캐스팅
출발지 목적지
IP 192.168.94.2 192.168.94.128
MAC 00-50-56-ee-37-4a 00-0C-29-52-AE-4B
#4 응답을 받은 출발지 호스트는 자신의 ARP 캐시 테이블에 반영
Interface: 192.168.94.128 --- 0x2
Internet Address Physical Address Type
192.168.94.2 00-50-56-ee-37-4a dynamic
#5 이후 게이트웨이와 통신을 하기 위해서는 로컬 ARP 캐시 테이블에 MAC 주소를 이용해서 유니캐스팅
출발지 목적지
IP 192.168.94.128 192.168.94.2
MAC 00-0C-29-52-AE-4B 00-50-56-ee-37-4a
- 처음에 아예 정보가 없으면 브로드캐스팅을 통해 목적지 MAC주소 얻어옴
DNS 캐시 테이블
C:\Windows\system32> ipconfig /flushdns ⇐ DNS 캐시 테이블을 삭제
Windows IP 구성
DNS 확인자 캐시를 플러시했습니다.
C:\Windows\system32> ping google.com
Ping google.com [172.217.175.14] 32바이트 데이터 사용:
172.217.175.14의 응답: 바이트=32 시간=66ms TTL=115
172.217.175.14의 응답: 바이트=32 시간=66ms TTL=115
172.217.175.14의 응답: 바이트=32 시간=72ms TTL=115
172.217.175.14의 응답: 바이트=32 시간=78ms TTL=115
172.217.175.14에 대한 Ping 통계:
패킷: 보냄 = 4, 받음 = 4, 손실 = 0 (0% 손실),
왕복 시간(밀리초):
최소 = 66ms, 최대 = 78ms, 평균 = 70ms
C:\Windows\system32> ipconfig /displaydns
Windows IP 구성
google.com
----------------------------------------
데이터 이름 . . . . . : google.com
데이터 유형 . . . . . : 1
TTL(Time To Live) . : 55
데이터 길이 . . . . . : 4
섹션 . . . . . . . : 응답
(호스트) 레코드 . . . : 172.217.175.14
146.224.29.59.in-addr.arpa
----------------------------------------
데이터 이름 . . . . . : 146.224.29.59.in-addr.arpa.
데이터 유형 . . . . . : 12
TTL(Time To Live) . : 593948
데이터 길이 . . . . . : 8
섹션 . . . . . . . : 응답
PTR 레코드 . . . . . : host.docker.internal
도메인 네임을 IP주소로 변환하는 순서
#1 hosts 파일에서 해당 도메인을 검색
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
# Added by Docker Desktop
59.29.224.146 host.docker.internal
59.29.224.146 gateway.docker.internal
# To allow the same kube context to work on the host and the container:
127.0.0.1 kubernetes.docker.internal
# End of section
#2 로컬 DNS 캐시 테이블을 검색
#3 로컬 DNS 서버 IP 주소로 도메인 네임에 대한 질의를 요청
#4 로컬 DNS 서버로부터 도메인 네임에 대한 IP 주소를 응답받으면 해당 내용을 DNS 캐시 테이블에 반영
UDP 방식 vs TCP 방식
- User Datagram Protocol
한번에 많은 메시지를 전송하고자 하는 경우, 전송 경로 확립을 위한 작업을 생략하고 시간을 절약할 수 있는 방식
- Transmission Control Protocol
연결 지향형 프로토콜
데이터 흐름 제어, 에러 제어, ... 등 기능을 통해 데이터의 확실한 전송을 보장
소켓(socket)
1982년 유닉스 기반의 BSD 운영체제에서 처음 등장
운영체제가 논리적인 방식에 따라 서로 떨어진 두 대의 호스트를 연결해주는 인터페이스
포트(port)
16비트로 구성된 가상의 주소 ( 0 ~ 65535번)
운영체제에서 응용 계층에 속하는 프로그램을 식별하기 위한 고유한 식별자 번호
IANA(Internet Assigned Numbers Authority) 기구에서 관리
0 ~ 1023 잘 알려진 포트 번호
1024 ~ 49151 등록 포트 번호
49152 ~ 65535 사설 또는 동적 포트 번호
주요 포트 번호 확인
C:\Windows\System32\drivers\etc\services ⇒ 리눅스의 경우 /etc/services
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tcp users #Active users
systat 11/udp users #Active users
daytime 13/tcp
daytime 13/udp
qotd 17/tcp quote #Quote of the day
qotd 17/udp quote #Quote of the day
chargen 19/tcp ttytst source #Character generator
chargen 19/udp ttytst source #Character generator
ftp-data 20/tcp #FTP, data
ftp 21/tcp #FTP. control
ssh 22/tcp #SSH Remote Login Protocol
telnet 23/tcp
smtp 25/tcp mail #Simple Mail Transfer Protocol
time 37/tcp timserver
time 37/udp timserver
rlp 39/udp resource #Resource Location Protocol
nameserver 42/tcp name #Host Name Server
nameserver 42/udp name #Host Name Server
nicname 43/tcp whois
domain 53/tcp #Domain Name Server
domain 53/udp #Domain Name Server
bootps 67/udp dhcps #Bootstrap Protocol Server
bootpc 68/udp dhcpc #Bootstrap Protocol Client
tftp 69/udp #Trivial File Transfer
gopher 70/tcp
finger 79/tcp
http 80/tcp www www-http #World Wide Web
hosts2-ns 81/tcp #HOSTS2 Name Server
hosts2-ns 81/udp #HOSTS2 Name Server
kerberos 88/tcp krb5 kerberos-sec #Kerberos
kerberos 88/udp krb5 kerberos-sec #Kerberos
hostname 101/tcp hostnames #NIC Host Name Server
iso-tsap 102/tcp #ISO-TSAP Class 0
rtelnet 107/tcp #Remote Telnet Service
pop2 109/tcp postoffice #Post Office Protocol - Version 2
pop3 110/tcp #Post Office Protocol - Version 3
sunrpc 111/tcp rpcbind portmap #SUN Remote Procedure Call
sunrpc 111/udp rpcbind portmap #SUN Remote Procedure Call
auth 113/tcp ident tap #Identification Protocol
uucp-path 117/tcp
sqlserv 118/tcp #SQL Services
nntp 119/tcp usenet #Network News Transfer Protocol
ntp 123/udp #Network Time Protocol
epmap 135/tcp loc-srv #DCE endpoint resolution
epmap 135/udp loc-srv #DCE endpoint resolution
netbios-ns 137/tcp nbname #NETBIOS Name Service
netbios-ns 137/udp nbname #NETBIOS Name Service
netbios-dgm 138/udp nbdatagram #NETBIOS Datagram Service
netbios-ssn 139/tcp nbsession #NETBIOS Session Service
imap 143/tcp imap4 #Internet Message Access Protocol
sql-net 150/tcp
sqlsrv 156/tcp
pcmail-srv 158/tcp #PCMail Server
snmp 161/udp #SNMP
snmptrap 162/udp snmp-trap #SNMP trap
print-srv 170/tcp #Network PostScript
bgp 179/tcp #Border Gateway Protocol
irc 194/tcp #Internet Relay Chat Protocol
ipx 213/udp #IPX over IP
rtsps 322/tcp
rtsps 322/udp
mftp 349/tcp
mftp 349/udp
ldap 389/tcp #Lightweight Directory Access Protocol
https 443/tcp MCom #HTTP over TLS/SSL
https 443/udp MCom #HTTP over TLS/SSL
microsoft-ds 445/tcp
microsoft-ds 445/udp
kpasswd 464/tcp # Kerberos (v5)
kpasswd 464/udp # Kerberos (v5)
isakmp 500/udp ike #Internet Key Exchange
crs 507/tcp #Content Replication System
crs 507/udp #Content Replication System
exec 512/tcp #Remote Process Execution
biff 512/udp comsat
login 513/tcp #Remote Login
who 513/udp whod
cmd 514/tcp shell
syslog 514/udp
printer 515/tcp spooler
talk 517/udp
ntalk 518/udp
efs 520/tcp #Extended File Name Server
router 520/udp route routed
ulp 522/tcp
ulp 522/udp
timed 525/udp timeserver
tempo 526/tcp newdate
irc-serv 529/tcp
irc-serv 529/udp
...
OSI 7계층
헤더 덧붙여서 전달을 하고
수신된 정보중 헤더를 보고 어떤 계층에서 처리해야 하는지 판단한다.
헤더1+ 페이로드
헤더2 + 헤더1+ 페이로드
헤더3 + 헤더2 + 헤더1+ 페이로드
페이로드(payload)
상대방에게 전송하고자 하는 실제 정보가 담긴 공간
헤더(header)
출발지 주소와 목적지 주소가 담긴 공간
메시지(message)
페이로드만으로 이루어진 데이터 전송 단위
단편화(fragmentation)
데이터를 분할한다는 의미
생성된 페이로드 영역을 여러개로 조각을 낸 뒤 전송하는 기법
전송의 효율성 보장과 데이터의 기밀성 보장을 위해서 사용
→ UDP는 없고, TCP에만 제공
데이터그램(datagram), 세그먼트(segment)
데이터그램 헤더 + UDP 페이로드
세그먼트 헤더 + TCP 페이로드
~~~~~~~~~~~
첫번째 헤더
출발지와 목적지 포트 번호를 포함 → 수신측 운영체제에서 데이터그램/세그먼트에 담긴 포트 번호를 이용해서 데이터를 처리할 서비스를 판단
목적지 포트는 일반적으로 서비스 포트 번호가 사용되고, 출발지 포트는 1024번 이후의 포트 번호가 사용
패킷(packet)
패킷 헤더 + 데이터그램/세그먼트 헤더 + 페이로드
패킷 헤더 : 두번째 헤더
출발지와 목적지 IP주소를 포함
라우터 장비가 라우팅 기능을 수행할 때 참조하는 부분
프레임(frame)
프레임 헤더 + 패킷 헤더 + 데이터그램/세그먼트 헤더 + 페이로드
프레임 헤더: 세번째 헤더
MAC 주소를 포함
스위치 장비가 스위칭 기능을 수행할 때 참조하는 부분
LAN 영역과 WAN 영역에 따라서 상이하게 설정
인캡슐레이션(encapsulation)
페이로드에 일련의 헤더를 붙이는 과정
운영체제가 데이터를 송신하는 과정
메시지 → 데이터그램/세그먼트 → 패킷 → 프레임 → 비트
디캡슐레이션(decapsulation)
일련의 헤더를 제거하는 과정
데이터를 수신하는 과정
비트 → 프레임 → 패킷 → 데이터그램/세그먼트 → 메시지