Layer 4: https://www.youtube.com/playlist?list=PLelEzczSdJkCukp60g0DOGr7aruKyS6Rs
Layer 5:
why TLS and SSL - https://www.youtube.com/watch?v=SJJmoDZ3il8
How the negotiation works - https://www.youtube.com/watch?v=n_d1rCXNrx0
RE:Invent talk about TLS - https://www.youtube.com/watch?v=8AODa_AazY4
1. Connection
1. run in the server mode
nc -l 2389
서버가 2389 포트에서 연결 대기 시작
-l: 리스닝 모드로 실행
2. used in client mode
nc localhost 2389
클라이언트가 서버의 2389 포트로 연결 시도, localhost (or 서버IP)
서버IP 확인
# private ip
ifconfig
ip addr
# public ip
curl ifconfig.me
wget -q0- ifconfig.me
(whatismyip.com)
# ipv6
curl -6 ifconfig.me
3. 통신 테스트
# at client side
HI, server
# displayed at server side
HI, server
클라이언트가 메시지 전송, 서버 측에서 동일한 메시지 수신 확인
특징: 양방향 통신, 텍스트 기반, 간단한 소켓 통신 테스트에 유용, 실시간 메시지 전송/수신
2. File Transfer
1. initial setup
# client side - Create source file
$ echo "hello test" > testfile
$ cat testfile
hello test
# server side - Empty destination file
$ touch test
클라이언트 측 testfile이라는 파일이 있고, 내용은 hello test
서버 측 빈 test 파일이 존재
수신된 데이터를 test 파일로 리다이렉션, 서버 측의 test 파일에서는 클라이언트가 보낸 "hello test" 내용이 저장됨
3. Timeout
-w 플래그를 통해 연결 타임아웃을 설정할 수 있음
# server side
nc -l 2389
# client side
nc -w 10 localhost 2389
4. IPv6 connect
-4 또는 -6 플래그는 netcat 유틸리티가 어떤 유형의 주소를 사용해야 하는지 지정한다.
(-4 없이 IPv4 주소를 적을 경우 연결 가능)
# server side
nc -4 -l 2389
# client side
nc -4 localhost 2389
5. Disable reading from STDIN
1) -d 플래그: stdin(표준 입력)에서 읽기를 비활성화
클라이언트에서 서버로 데이터 전송을 막음
(연결 수립 이후 텍스트 입력해야 함, 마지막 hi는 -d와 관계없이 무시됨)
2) -k 플래그: (keep listening) 서버 측 옵션, 클라이언트가 연결을 종료해도 서버는 계속 실행되어 새로운 클라이언트 연결 대기 상태 유지
→ 다중 클라이언트 연결 가능, 서버 수동 종료 전까지 계속 실행
3) -q 플래그: EOF(파일이나 데이터 스트림의 끝, 데이터 전송이 완료되었음을 알리는 시그널) 수신 후 5초간 대기
→ -w 플래그로 대체됨
# server side
nc -l 2389 > received_file.txt
# client side
date; cat file.txt | nc -w 5 localhost 2389; date
4) -u 플래그: UDP 옵션 (서버와 클라이언트 모두 설정)
$ netstat -an | grep 2389
udp4 0 0 127.0.0.1.61430 127.0.0.1.2389
udp4 0 0 127.0.0.1.2389 127.0.0.1.61430
'Networking > Network' 카테고리의 다른 글
[essential#03] Wireshark (0) | 2025.02.07 |
---|---|
[essentials#02] Telnet (0) | 2025.02.06 |
[AWS] setting up Nginx SSL (0) | 2024.07.30 |
VPN - Site-to-Site, Client VPN (0) | 2024.02.13 |
보안 그룹과 네트워크 ACL(Stateful vs Stateless) (0) | 2024.02.12 |