딥러닝 학습시나 연산을 위한 교환을 수행시..parameter교환같은것을 할때 TCP의 영향이 매우 크다.
Flow control시 처음부터 적절하게 잡으면 빠르지 않을까? 같은 질문이 있다.
이렇게 parameter전송같이 데이터센터에서의 대규모 전송시 필요한 congestion control같은 경우 구현이 되어있는 경우가 없음.
-> RDMA와 같이, NIC -> GPU...CPU와 커널을 거치지 않고 바로 처리되는 새로운 형태의 하드웨어 프로토콜들이 등장하고 있다.
이때 Zero-copy의 장점과 TCP의 장점 모두를 사용하기 위해서 커널에 적용된것이 Device memory TCP이다. 
Application이 많아지고,또 그에 따른 요구사항이 많이 생겼다.
-> network control에 대한 요구가 증가하고 있다.
조금 더 scalable 한 네트워크의 필요성.
-> virtual circuit switching기법을 쓰는 ATM과 같은 것들이 존재함.
QoS등을 구현하기 위해서 동적으로 정적 경로를 조절하는 기술이다.
이렇게 네트워크가 진화하다보니 IPv4, IPv6, TCP 등등 전통적인 프로토콜들의 scale up 방법에 대한 문제가 발생하였음.
scale up 기법은 대표적으로 2가지로 나뉜다.
기존의 전통적인 방식을 진화시켜서 만드는것.
SDN과 같이 control plane을 중앙집중형 서버에서 수행하도록 하는 기법과,
Overlay network과 같이 가상 네트워크를 만들어서 길을 만드는 기법들이 있다.
기존에 없었던 기법들이 새롭게 생긴것임.
단순히 패킷의 source/destination address만 참고하는것이 아닌, 패킷 헤더에 있는 소스코드를 보고, 그것을 compling -> run할 수 있게 만든다. 네트워크가 active 해지는 개념. 하지만,
실패 원인:
1. 보안의 재앙: 해커가 패킷에 악성 코드를 넣어서 보내면 전 세계의 라우터가 줄줄이 해킹당하는 구조였습니다.
2. 성능 저하: 초당 수억 개의 패킷이 쏟아지는데, 라우터 CPU가 패킷마다 코드를 읽고 컴파일해서 실행하려다 보니 라우터가 뻗어버렸습니다.
때문에 사용되지 않는다. 하지만, P4, eBPF와 같은 기술의 등장으로 비슷한 개념이 등장했다.
미리 검증된 '기능(코드)'을 장비(P4, eBPF)에 깔아두고, 패킷은 "몇 번 기능 실행해 줘"라는 '메타데이터(명령어)'만 달고 다니게 만들었다.
가장 성공적인 예) SRv6

그렇다면 routing을 수행하는 역할만 하는가? 그렇지 않음. 다양한 기능을 수행하도록 할 수 있음.
1. SRv6의 숨겨진 진짜 모습: SIDs (Segment Identifiers)의 해부
SRv6에서 패킷 헤더에 적어넣는 128비트의 IPv6 주소(Segment)는 단순한 '목적지 주소'가 아닙니다. 이는 라우터에게 내리는 **명령어(Instruction)**입니다.
이 128비트는 다음과 같이 3조각으로 쪼개져서 라우터의 행동을 제어합니다.
Locator (어디로 갈 것인가): 특정 라우터로 찾아가는 일반적인 라우팅 주소입니다.
Function (무엇을 할 것인가) : 목적지 라우터에 도착했을 때 **"어떤 행동을 할지"**를 지시하는 명령 코드입니다.
Argument (어떤 파라미터로 할 것인가): 그 행동을 수행할 때 필요한 추가 데이터입니다.
라우터의 행동을 제어하는 대표적인 'Function' 예시:
End.DX4 (행동 지시): "이 패킷의 껍데기를 벗기고(Decapsulation), 안에 있는 IPv4 패킷을 꺼내서 특정 포트로 바로 쏴버려." (VPN 기능)
End.M.GTP6.D (행동 지시): "너는 지금부터 5G 이동통신망의 코어 장비(UPF)처럼 행동해서, 스마트폰 트래픽의 모바일 캡슐을 벗겨내." (5G 장비 대체)
End.BPF (가장 파괴적인 결합) : "라우터야, 네 커널(또는 DPU)에 미리 심어둔 커스텀 eBPF 프로그램 3번을 당장 실행해!"
-> 질문자님이 관심을 가지셨던 eBPF와 SRv6가 만나는 궁극의 지점입니다. 패킷이 라우터에 도착하는 순간, 패킷의 지시에 따라 라우터 내부의 C/Rust 코드가 실행됩니다!
2. SFC (Service Function Chaining)와 NSH (Network Service Header)
단순한 라우팅(A->B->C)이 아니라, **"보안 및 서비스 장비를 순서대로 거쳐 가라"**고 패킷에 지시하는 기법입니다.
동작 방식: 패킷 헤더에 NSH(Network Service Header)라는 특별한 꼬리표를 답니다.
지시 내용: "이 트래픽은 금융 데이터니까, 1번 라우터에서는 '방화벽(Firewall)' 검사를 받고, 2번 라우터에서는 **'침입 탐지(IDS)'**를 거치고, 3번 라우터에서는 **'데이터 암호화'**를 한 뒤에 목적지로 가라."
효과: 과거에는 물리적으로 선을 꼬아서 장비를 연결해야 했지만, 이제는 패킷에 적힌 '서비스 체인(Service Chain)' 지시서에 따라 네트워크가 스스로 서비스 순서를 조작합니다.
3. IOAM (In-situ OAM) / INT의 Active 모드
이전에 설명드린 INT(In-band Network Telemetry)의 확장판으로, 패킷이 라우터를 향해 **"너의 속을 내게 보여줘"**라고 명령하는 기법입니다.
동작 방식: 일반적인 사용자 트래픽 중간에 '프로브(Probe) 패킷'을 섞어 보냅니다. 이 패킷의 헤더에는 **'명령어 비트(Instruction Bit)'**가 켜져 있습니다.
지시 내용: "내가 지금 너(라우터)를 통과할 건데, 네가 가진 현재 큐의 길이(Queue Depth), 나를 처리하는 데 걸린 시간(Timestamp), 그리고 네 포트의 혼잡도 상태를 내 빈 공간에 적어놔!"
AIOps와의 결합: 이 명령을 받은 라우터들이 자신의 상태를 패킷에 꾹꾹 눌러 담아 목적지에 도착하면, AIOps 분석 서버가 이 패킷 하나만 뜯어보고도 네트워크 전 구간의 병목을 실시간으로 파악합니다.
CDN의 경우 서버가 distributed되었지만, ICN의 경우, 네트워크 장비들에서 캐싱이 가능하다.
네트워크를 거대한 캐시로 만드는 개념이다.
AI에게 네트워크 설정에 관한 명령을 던지면, labeled network 등을 사용, AIops에 의해서 알아서 그것들을 처리하는 형태를 띈다.
전쟁 -> 통신 매체 많이 파괴. LED등에서도 정보를 전달 할 수 있도록 함.
vlc visible light communication
Li-Fi와 같은 기법들이 많이 생겨나고 있음.
아래와 같은 프로젝트도 해보고 싶음.
HW: BBB에 간단한 LED 송신 회로와 수신 센서를 구성합니다.
SW: 두 대의 BBB가 빛으로 텍스트나 이미지 데이터를 주고받게 만듭니다.
Advance: 앞서 배운 ICN/CCN을 결합합니다. "영상 데이터 이름을 빛으로 외치면, 조명 아래에 있는 다른 BBB가 그 데이터를 빛으로 쏴주는" 시스템입니다.
유선 -> 무선 -> 클라이언트...이렇게 통신 매체가 상이하다. 이러한 상황에서 congestion control을 어떻게 할 것이냐? 유선은 빠르고, 무선은 느리다. 어떻게 그러한 것들을 다 고려할 것이냐?
캐싱을 한다던지 무선구간에 맞춰주는 기법들이 있음.
무선에만 맞추면 느리다. -> 6G오면서 기존 메카니즘이 파괴되었음. 무선도 굉장히 빠름. 따라서 scalable한 기법이 매우 중ㅇ함.
Mobile TCP등에 대한 연구필요. mobilty를 생각해봐라...아주 빠르게 달리는 KTX안에서의 휴대폰은 어떻게 연결을 유지할 수 있는가? -> 1계층에서 하는것들..
우리같은 컴퓨터 쟁이들이 하는건 버퍼조정같은 부분야들...
NOMS학회. 네트워크 operation에 관한 논문들이 투고되는 학회.
나중에 찾ㅏ볼것.
DevOps
NetOps -> 두개념이 합해지고, AI가 추가되면서 AIops라는 개념이 추가되었음..
Interruption - availabilty를 위한 것.
Interception - Confidentialty를 위한 것.
Integrity - 무결성
Fabric - authenticity를 위한 것.
Authentication: 너가 누구인지
Authorization: 권한 인가.
Data confidentiality: encryption...암호화
Data integrity: 데이터의 무결성을 위한 것.
Availabilty: 가용성
Non-repudiation: 무인봉쇄, 정보통신 및 전자거래에서 데이터를 송수신한 자가 나중에 송수신 사실을 허위로 부인하는 것을 막기 위해, 기술적으로 증거를 확보하여 부인하지 못하게 하는 보안 서비스
PSK와 RSA등등의 방법 존재.
결국, key를 사용하는 이때 key가 plaintex 하게 가면 안되니까 Hash 값을 암호화해서 보낸다. Hash 맞으니까 무결성, key맞으니까 인증도 된다.