네트워크교육 5일차(2022.01.07) - 정리

정상훈·2022년 1월 7일
0
post-thumbnail

TCP

TCP

server - client 서비스 요청하기 전에 3way HS를 통해서 세션을 확립.
서비스 요청/응답 끝나면 tcp 세션 종료

client			server
		                 listen
TCP syn---------------------->
<------------------------------ TCP syn+ack
TCP ack----------------------->
	        세션 확립
            
	        서비스 통신
HTTP 요청+TCP push--------------------->
<-------------------------------TCP ack
<------------------------------- HTTP 응답(요청에대한답장)+TCP push
TCP ack------------------------>
	        .....
	        세션 종료
 TCP fin------------------------->
<--------------------------------- TCP ack
<--------------------------------- TCP fin
TCP ack------------------------->


여러 데이터를 전송하기때문에 data 번호를 붙여서 정확하게 전송되었는지 data 번호로 ack 확인

sender		
data 번호 (sequence number)---------->
<------------------------------------- TCP ack(flag) , ack 번호
수신확인

data에 대한 번호를 붙여서 전송 : sequence number
상대방은 잘받았다고 ack 번호를 전송함 : ack number (수신한 seq 번호+dataseize + 1)


sender		
data 번호 (sequence number)---------->답장이 안옴
(저장) data 재전송------------------------------>

sender		
data 번호 (sequence number)---------->(손실)
<------------------------------------------ TCP 재전송 요청
(저장)	data 재전송------------------------------>
<------------------------------------------ TCP ack
(버퍼 비움)

버퍼 size, 버퍼 변화가 생기면 tcp로 알려줌.  버퍼 size를 tcp header에 포함 (window)
-> 윈도우 슬라이드알고리즘

TCP 세그먼트 헤더 포맷 - Flags 용어정리

TCP Header - Flags

URG(Urgent) : 긴급 데이터 , 긴급데이터의 경우 1로 표기되어 보내진다.
Ack : 송신된 메세지가 수신측에서 정상적으로 수신되었음을 송신측으로 확인응답하는 것
Ack 번호가 유효할 경우 1로 표시, 초기 SYN이 아닌 모든 패킷은 기존 메세지에서의 응답이므로 1로 표시된다.
PSH(Push) : 서버측에서 전송할 데이터가 없거나, 데이터를 버퍼링 없이 응용프로그램으로 즉시 전달할 것을 지시할 때 사용.
Rst(Reset) : 연결 종료시 1로 표시되며, 연결 강제 종료를 위해 일방적으로 끊을 때 사용
Syn : 연결 시작용도로 사용한다. 연결이 시작될 때 SYN플래그에 1로 표시해서 보낸다.
FIN(Finish) : 연결 종료 시 1로표시. 데이터 전송을 정상적으로 마친 후 종료.

ARP (Address Resolution Protocol)

- 주소변환 프로토콜, IP(IP address)에 대한 Ethernet(Mac adderss)변환, 요청과 응답
Ping 전송 시 (4전송,4응답)
첫 번째 패킷을 보내기 전에 ARP로 MAC주소를 알아내고, 알아낸 IP-MAC 주소 정보를 기억함 
=> ARP  cache Table => [cmd] arp -a  ( RAM에 저장 )

PC내에서 처리방법 
- IP에 해당하는 MAC주소가 필요하면 ARP cache table을 확인함
- ARP Cache table에 MAC주소가 없으면 ARP 요청을 전송하여 알아옴, 있으면 가져다가 사용함
- ARP reply 답장이 오면 ARP Cache table 에 학습함(기록함)
- 시간이 지나거나, Interface가 다운되거나, 시스템의 전원이 꺼지면 사라진다

ARP Frame ( ARP 구조 )
오퍼레이션 코드 (op code)

1: ARP request  2: ARP reply  3: RARP request  4: RARP reply

GARP (Gratuitous ARP)

대상자 IP필드에 자신의 IP 주소를 채워넣어 ARP요청을 보냄.
자신의 IP와 MAC주소를 알릴 목적으로 사용된다. GARP의 목적지 MAC주소는 브로드캐스트의 MAC주소를 사용한다

ICMP utility : 1) ping 2) tracert (경로추적- traceroute)

1) ping
목적지까지 경로 test, 목적지 시스템이 ip통신을 제대로 하는지 확인.
윈도우OS
ping -n 전송패킷수   -l 핑데이터사이즈  목적지_IP
    -t  중지할 때까지 계속 핑 보내기 (중지하려면 ctrl+c)
    -r ttl 라우터(홉) 수 지정

리눅스 유닉스 
ping -c 전송패킷수  목적지_IP


2) 경로추적 tracert (윈도우)  traceroute(리눅스,유닉스,장비)

참조
윈도우 tracert : ICMP 기반
리눅스/유닉스 traceroute : UDP 기반
tcp기반으로 traceroute 경로추적 : tcptraceroute

오늘의 정리

  1. TCP 정확하게 전송하기 위해 사용하는 정보들
  2. Windows 시스템에서 IP확인, 라우팅 테이블확인, 경로추적, arp테이블 확인 명령어
  3. arp 프로토콜이란 ? PC내에서 동작하는 프로세스

1. TCP에서 정확한(신뢰성있는) 전송을 사용하기 위해 3-way handshaking을 사용하며, 전송 시작전에 SYN패킷을 전송하여 먼저 통신이 가능한 상태인지 확인하고, 제대로 전송이 되었는지 그리고 수신자 측에서 정보를 정상적으로 받았는지 확인하며 통신을 하는게 특징이다. syn,ack를 사용

2. IP확인 : ipconfig , ipconfig /all
   라우팅 테이블 : route print
   경로추적 : tracert 주소
   arp테이블 : arp -a
3. ARP란 IP를 기반으로 MAC주소를 찾아내는 것을 의미하며 상대방의 IP주소만 알고 MAC주소를 모를때 IP주소를 브로드캐스트로 호출하여 MAC주소를 받아내고, ARP 테이블에 저장시키는 것이다.
profile
"@____

0개의 댓글