• gvisor netstack (二)


    https://www.it610.com/article/1175051551228637184.htm

    TCP发送流程
    third_partygolibsgithub.comgoogle
    etstack	cpip	ransport	cpsnd.go
    sendData
        maybeSendSegment
            sendSegment
                sendSegmentFromView
                    sendRaw        --connect.go
                        sendTCP
                            r.WritePacket(gso, hdr, data, ProtocolNumber, ttl)
                                WritePacket        --third_partygolibsgithub.comgoogle
    etstack	cpipstack
    oute.go
                                    r.ref.ep.WritePacket //TODO,后面的分析不对,到此截止。
                                e.linkEP.WritePacket    --third_partygolibsgithub.comgoogle
    etstack	cpiplinkfdbasedendpoint.go
                                    rawfile.NonBlockingWrite3    --third_partygolibsgithub.comgoogle
    etstack	cpiplink
    awfile
    awfile_unsafe.go
                                        NonBlockingWrite
                                            syscall.RawSyscall(syscall.SYS_WRITE, uintptr(fd), uintptr(ptr), uintptr(len(buf)))
    root@dc6ca0fab5ce:/# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope global dynamic 
    2: eth0: <UP,LOWER_UP> mtu 1500 
        link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
        inet 172.17.0.2/16 scope global dynamic 
    root@dc6ca0fab5ce:/# 
    root@dc6ca0fab5ce:/# ping 8.8.8.8
    PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
    64 bytes from 8.8.8.8: icmp_seq=1 ttl=0 time=41890 ms
    64 bytes from 8.8.8.8: icmp_seq=2 ttl=0 time=11.5 ms
    64 bytes from 8.8.8.8: icmp_seq=3 ttl=0 time=11.4 ms
    64 bytes from 8.8.8.8: icmp_seq=4 ttl=0 time=11.4 ms
    ^C
    --- 8.8.8.8 ping statistics ---
    4 packets transmitted, 4 received, 0% packet loss, time 938ms
    rtt min/avg/max/mdev = 11.362/10480.958/41889.646/18133.814 ms
    root@cloud:~# dlv attach 945272
    Type 'help' for list of commands.
    (dlv) b NonBlockingWrite
    Breakpoint 1 set at 0x86b3c0 for gvisor.dev/gvisor/pkg/tcpip/link/rawfile.NonBlockingWrite() pkg/tcpip/link/rawfile/rawfile_unsafe.go:55
    (dlv) c
    received SIGINT, stopping process (will not forward signal)
    > runtime.futex() src/runtime/sys_linux_arm64.s:565 (PC: 0x78e3c)
    Warning: debugging optimized function
    (dlv) b WritePacket
    Command failed: Location "WritePacket" ambiguous: gvisor.dev/gvisor/pkg/tcpip/link/nested.(*Endpoint).WritePacket, gvisor.dev/gvisor/pkg/tcpip/stack.(*NIC).WritePacket, gvisor.dev/gvisor/pkg/tcpip/stack.(*Route).WritePacket, gvisor.dev/gvisor/pkg/tcpip/network/ipv4.(*endpoint).WritePacket, gvisor.dev/gvisor/pkg/tcpip/network/ipv6.(*endpoint).WritePacket…
    (dlv) b stack.(*NIC).WritePacket
    Breakpoint 2 set at 0x4959f0 for gvisor.dev/gvisor/pkg/tcpip/stack.(*NIC).WritePacket() pkg/tcpip/stack/nic.go:297
    (dlv) c
    > gvisor.dev/gvisor/pkg/tcpip/stack.(*NIC).WritePacket() pkg/tcpip/stack/nic.go:297 (hits goroutine(7223):1 total:1) (PC: 0x4959f0)
    Warning: debugging optimized function
    (dlv) bt
     0  0x00000000004959f0 in gvisor.dev/gvisor/pkg/tcpip/stack.(*NIC).WritePacket
        at pkg/tcpip/stack/nic.go:297
     1  0x000000000061a33c in gvisor.dev/gvisor/pkg/tcpip/network/ipv4.(*endpoint).writePacket
        at pkg/tcpip/network/ipv4/ipv4.go:368
     2  0x0000000000619fe8 in gvisor.dev/gvisor/pkg/tcpip/network/ipv4.(*endpoint).WritePacket
        at pkg/tcpip/network/ipv4/ipv4.go:331
     3  0x000000000049bfd0 in gvisor.dev/gvisor/pkg/tcpip/stack.(*Route).WritePacket
        at pkg/tcpip/stack/route.go:410
     4  0x0000000000866424 in gvisor.dev/gvisor/pkg/tcpip/transport/icmp.send4
        at pkg/tcpip/transport/icmp/endpoint.go:424
     5  0x0000000000865d08 in gvisor.dev/gvisor/pkg/tcpip/transport/icmp.(*endpoint).write
        at pkg/tcpip/transport/icmp/endpoint.go:323
     6  0x00000000008657f8 in gvisor.dev/gvisor/pkg/tcpip/transport/icmp.(*endpoint).Write
        at pkg/tcpip/transport/icmp/endpoint.go:240
     7  0x00000000006435a8 in gvisor.dev/gvisor/pkg/sentry/socket/netstack.(*socketOpsCommon).SendMsg
        at pkg/sentry/socket/netstack/netstack.go:2818
     8  0x000000000058cf50 in gvisor.dev/gvisor/pkg/sentry/syscalls/linux.sendTo
        at pkg/sentry/syscalls/linux/sys_socket.go:1110
     9  0x000000000058d2a8 in gvisor.dev/gvisor/pkg/sentry/syscalls/linux.SendTo
        at pkg/sentry/syscalls/linux/sys_socket.go:1123
    10  0x0000000000522ea4 in gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).executeSyscall
        at pkg/sentry/kernel/task_syscall.go:104
    11  0x0000000000523c5c in gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscallInvoke
        at pkg/sentry/kernel/task_syscall.go:239
    12  0x00000000005238dc in gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscallEnter
        at pkg/sentry/kernel/task_syscall.go:199
    13  0x00000000005233e0 in gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscall
        at pkg/sentry/kernel/task_syscall.go:174
    14  0x0000000000518e00 in gvisor.dev/gvisor/pkg/sentry/kernel.(*runApp).execute
        at pkg/sentry/kernel/task_run.go:282
    15  0x0000000000517d9c in gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).run
        at pkg/sentry/kernel/task_run.go:97
    16  0x0000000000077c84 in runtime.goexit
        at src/runtime/asm_arm64.s:1136
    (dlv) c
    > gvisor.dev/gvisor/pkg/tcpip/stack.(*NIC).WritePacket() pkg/tcpip/stack/nic.go:297 (hits goroutine(7223):2 total:2) (PC: 0x4959f0)
    Warning: debugging optimized function
    (dlv) clearall
    Breakpoint 1 cleared at 0x86b3c0 for gvisor.dev/gvisor/pkg/tcpip/link/rawfile.NonBlockingWrite() pkg/tcpip/link/rawfile/rawfile_unsafe.go:55
    Breakpoint 2 cleared at 0x4959f0 for gvisor.dev/gvisor/pkg/tcpip/stack.(*NIC).WritePacket() pkg/tcpip/stack/nic.go:297
    (dlv) quit
    Would you like to kill the process? [Y/n] n
    root@cloud:~# 
    (dlv) p n
    *gvisor.dev/gvisor/pkg/tcpip/stack.NIC {
            LinkEndpoint: gvisor.dev/gvisor/pkg/tcpip/stack.LinkEndpoint(*gvisor.dev/gvisor/pkg/tcpip/link/sniffer.endpoint) *{
                    Endpoint: (*"gvisor.dev/gvisor/pkg/tcpip/link/nested.Endpoint")(0x40004cc150),
                    writer: io.Writer nil,
                    maxPCAPLen: 0,
                    logPrefix: "",},
            stack: *gvisor.dev/gvisor/pkg/tcpip/stack.Stack {
                    transportProtocols: map[gvisor.dev/gvisor/pkg/tcpip.TransportProtocolNumber]*gvisor.dev/gvisor/pkg/tcpip/stack.transportProtocolState [...],
                    networkProtocols: map[gvisor.dev/gvisor/pkg/tcpip.NetworkProtocolNumber]gvisor.dev/gvisor/pkg/tcpip/stack.NetworkProtocol [...],
                    linkAddrResolvers: map[gvisor.dev/gvisor/pkg/tcpip.NetworkProtocolNumber]gvisor.dev/gvisor/pkg/tcpip/stack.LinkAddressResolver [...],
                    rawFactory: gvisor.dev/gvisor/pkg/tcpip/stack.RawFactory(gvisor.dev/gvisor/pkg/tcpip/transport/raw.EndpointFactory) *(*"gvisor.dev/gvisor/pkg/tcpip/stack.RawFactory")(0x40002c1098),
                    demux: *(*"gvisor.dev/gvisor/pkg/tcpip/stack.transportDemuxer")(0x40003c1f00),
                    stats: (*"gvisor.dev/gvisor/pkg/tcpip.Stats")(0x40002c10b0),
                    linkAddrCache: *(*"gvisor.dev/gvisor/pkg/tcpip/stack.linkAddrCache")(0x40003cdd80),
                    mu: (*"gvisor.dev/gvisor/pkg/sync.RWMutex")(0x40002c1480),
                    nics: map[gvisor.dev/gvisor/pkg/tcpip.NICID]*gvisor.dev/gvisor/pkg/tcpip/stack.NIC [...],
                    cleanupEndpointsMu: (*"gvisor.dev/gvisor/pkg/sync.Mutex")(0x40002c14a0),
                    cleanupEndpoints: map[gvisor.dev/gvisor/pkg/tcpip/stack.TransportEndpoint]struct {} [],
                    routeTable: []gvisor.dev/gvisor/pkg/tcpip.Route len: 3, cap: 4, [
                            (*"gvisor.dev/gvisor/pkg/tcpip.Route")(0x4000502000),
                            (*"gvisor.dev/gvisor/pkg/tcpip.Route")(0x4000502038),
                            (*"gvisor.dev/gvisor/pkg/tcpip.Route")(0x4000502070),
                    ],
                    PortManager: *(*"gvisor.dev/gvisor/pkg/tcpip/ports.PortManager")(0x400038f710),
                    tcpProbeFunc: (*"sync/atomic.Value")(0x40002c14d0),
                    clock: gvisor.dev/gvisor/pkg/tcpip.Clock(*gvisor.dev/gvisor/pkg/sentry/kernel.Kernel) ...,
                    handleLocal: true,
                    tables: *(*"gvisor.dev/gvisor/pkg/tcpip/stack.IPTables")(0x4000394700),
                    resumableEndpoints: []gvisor.dev/gvisor/pkg/tcpip/stack.ResumableEndpoint len: 0, cap: 0, nil,
                    icmpRateLimiter: *(*"gvisor.dev/gvisor/pkg/tcpip/stack.ICMPRateLimiter")(0x40001a8a40),
                    seed: 865450639,
                    nudConfigs: (*"gvisor.dev/gvisor/pkg/tcpip/stack.NUDConfigurations")(0x40002c1528),
                    useNeighborCache: false,
                    nudDisp: gvisor.dev/gvisor/pkg/tcpip/stack.NUDDispatcher nil,
                    uniqueIDGenerator: gvisor.dev/gvisor/pkg/tcpip/stack.UniqueID(*gvisor.dev/gvisor/pkg/sentry/kernel.Kernel) ...,
                    linkResQueue: (*"gvisor.dev/gvisor/pkg/tcpip/stack.packetsPendingLinkResolution")(0x40002c1598),
                    randomGenerator: *(*"math/rand.Rand")(0x400038f740),
                    sendBufferSize: (*"gvisor.dev/gvisor/pkg/tcpip/stack.SendBufferSizeOption")(0x40002c15c8),
                    receiveBufferSize: (*"gvisor.dev/gvisor/pkg/tcpip/stack.ReceiveBufferSizeOption")(0x40002c15e0),},
            id: 2,
            name: "eth0",   //网卡名字
            context: gvisor.dev/gvisor/pkg/tcpip/stack.NICContext nil,
            stats: gvisor.dev/gvisor/pkg/tcpip/stack.NICStats {
                    Tx: (*"gvisor.dev/gvisor/pkg/tcpip/stack.DirectionStats")(0x40004ce280),
                    Rx: (*"gvisor.dev/gvisor/pkg/tcpip/stack.DirectionStats")(0x40004ce290),
                    DisabledRx: (*"gvisor.dev/gvisor/pkg/tcpip/stack.DirectionStats")(0x40004ce2a0),
                    Neighbor: (*"gvisor.dev/gvisor/pkg/tcpip/stack.NeighborStats")(0x40004ce2b0),},
            neigh: *gvisor.dev/gvisor/pkg/tcpip/stack.neighborCache nil,
            networkEndpoints: map[gvisor.dev/gvisor/pkg/tcpip.NetworkProtocolNumber]gvisor.dev/gvisor/pkg/tcpip/stack.NetworkEndpoint [
                    gvisor.dev/gvisor/pkg/tcpip/header.IPv6ProtocolNumber (34525): ..., 
                    gvisor.dev/gvisor/pkg/tcpip/header.ARPProtocolNumber (2054): ..., 
                    gvisor.dev/gvisor/pkg/tcpip/header.IPv4ProtocolNumber (2048): ..., 
            ],
            enabled: 1,
            mu: struct { gvisor.dev/gvisor/pkg/sync.RWMutex; gvisor.dev/gvisor/pkg/tcpip/stack.spoofing bool; gvisor.dev/gvisor/pkg/tcpip/stack.promiscuous bool; gvisor.dev/gvisor/pkg/tcpip/stack.packetEPs map[gvisor.dev/gvisor/pkg/tcpip.NetworkProtocolNumber]*gvisor.dev/gvisor/pkg/tcpip/stack.packetEndpointList } {
                    RWMutex: (*"gvisor.dev/gvisor/pkg/sync.RWMutex")(0x40004ce2d0),
                    spoofing: false,
                    promiscuous: false,
                    packetEPs: map[gvisor.dev/gvisor/pkg/tcpip.NetworkProtocolNumber]*gvisor.dev/gvisor/pkg/tcpip/stack.packetEndpointList [...],},}
    (dlv) 

    sniffer.endpoint

    root@cloud:~# dlv attach 945272
    Type 'help' for list of commands.
    (dlv) b tcpip/link/sniffer/sniffer.go:190
    Breakpoint 1 set at 0x68c8f0 for gvisor.dev/gvisor/pkg/tcpip/link/sniffer.(*endpoint).WritePacket() pkg/tcpip/link/sniffer/sniffer.go:190
    (dlv) c
    > gvisor.dev/gvisor/pkg/tcpip/link/sniffer.(*endpoint).WritePacket() pkg/tcpip/link/sniffer/sniffer.go:190 (hits goroutine(7168):1 total:1) (PC: 0x68c8f0)
    Warning: debugging optimized function
    (dlv) bt
     0  0x000000000068c8f0 in gvisor.dev/gvisor/pkg/tcpip/link/sniffer.(*endpoint).WritePacket
        at pkg/tcpip/link/sniffer/sniffer.go:190
     1  0x0000000000495c30 in gvisor.dev/gvisor/pkg/tcpip/stack.(*NIC).writePacket
        at pkg/tcpip/stack/nic.go:342
     2  0x0000000000495ac0 in gvisor.dev/gvisor/pkg/tcpip/stack.(*NIC).WritePacket
        at pkg/tcpip/stack/nic.go:324
     3  0x000000000061a33c in gvisor.dev/gvisor/pkg/tcpip/network/ipv4.(*endpoint).writePacket
        at pkg/tcpip/network/ipv4/ipv4.go:368
     4  0x0000000000619fe8 in gvisor.dev/gvisor/pkg/tcpip/network/ipv4.(*endpoint).WritePacket
        at pkg/tcpip/network/ipv4/ipv4.go:331
     5  0x000000000049bfd0 in gvisor.dev/gvisor/pkg/tcpip/stack.(*Route).WritePacket
        at pkg/tcpip/stack/route.go:410
     6  0x0000000000866424 in gvisor.dev/gvisor/pkg/tcpip/transport/icmp.send4
        at pkg/tcpip/transport/icmp/endpoint.go:424
     7  0x0000000000865d08 in gvisor.dev/gvisor/pkg/tcpip/transport/icmp.(*endpoint).write
        at pkg/tcpip/transport/icmp/endpoint.go:323
     8  0x00000000008657f8 in gvisor.dev/gvisor/pkg/tcpip/transport/icmp.(*endpoint).Write
        at pkg/tcpip/transport/icmp/endpoint.go:240
     9  0x00000000006435a8 in gvisor.dev/gvisor/pkg/sentry/socket/netstack.(*socketOpsCommon).SendMsg
        at pkg/sentry/socket/netstack/netstack.go:2818
    10  0x000000000058cf50 in gvisor.dev/gvisor/pkg/sentry/syscalls/linux.sendTo
        at pkg/sentry/syscalls/linux/sys_socket.go:1110
    11  0x000000000058d2a8 in gvisor.dev/gvisor/pkg/sentry/syscalls/linux.SendTo
        at pkg/sentry/syscalls/linux/sys_socket.go:1123
    12  0x0000000000522ea4 in gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).executeSyscall
        at pkg/sentry/kernel/task_syscall.go:104
    13  0x0000000000523c5c in gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscallInvoke
        at pkg/sentry/kernel/task_syscall.go:239
    14  0x00000000005238dc in gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscallEnter
        at pkg/sentry/kernel/task_syscall.go:199
    15  0x00000000005233e0 in gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscall
        at pkg/sentry/kernel/task_syscall.go:174
    16  0x0000000000518e00 in gvisor.dev/gvisor/pkg/sentry/kernel.(*runApp).execute
        at pkg/sentry/kernel/task_run.go:282
    17  0x0000000000517d9c in gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).run
        at pkg/sentry/kernel/task_run.go:97
    18  0x0000000000077c84 in runtime.goexit
        at src/runtime/asm_arm64.s:1136
    // WritePacket implements the stack.LinkEndpoint interface. It is called by
    // higher-level protocols to write packets; it just logs the packet and
    // forwards the request to the lower endpoint.
    func (e *endpoint) WritePacket(r *stack.Route, gso *stack.GSO, protocol tcpip.NetworkProtocolNumber, pkt *stack.PacketBuffer) *tcpip.Error {
            e.dumpPacket(directionSend, gso, protocol, pkt)
            return e.Endpoint.WritePacket(r, gso, protocol, pkt)
    }
    (dlv) n
    > gvisor.dev/gvisor/pkg/tcpip/link/sniffer.(*endpoint).WritePacket() pkg/tcpip/link/sniffer/sniffer.go:192 (PC: 0x68c924)
    Warning: debugging optimized function
    (dlv) ct
    Command failed: command not available
    (dlv) bt
     0  0x000000000068c924 in gvisor.dev/gvisor/pkg/tcpip/link/sniffer.(*endpoint).WritePacket
        at pkg/tcpip/link/sniffer/sniffer.go:192
     1  0x0000000000495c30 in gvisor.dev/gvisor/pkg/tcpip/stack.(*NIC).writePacket
        at pkg/tcpip/stack/nic.go:342
     2  0x0000000000495ac0 in gvisor.dev/gvisor/pkg/tcpip/stack.(*NIC).WritePacket
        at pkg/tcpip/stack/nic.go:324
     3  0x000000000061a33c in gvisor.dev/gvisor/pkg/tcpip/network/ipv4.(*endpoint).writePacket
        at pkg/tcpip/network/ipv4/ipv4.go:368
     4  0x0000000000619fe8 in gvisor.dev/gvisor/pkg/tcpip/network/ipv4.(*endpoint).WritePacket
        at pkg/tcpip/network/ipv4/ipv4.go:331
     5  0x000000000049bfd0 in gvisor.dev/gvisor/pkg/tcpip/stack.(*Route).WritePacket
        at pkg/tcpip/stack/route.go:410
     6  0x0000000000866424 in gvisor.dev/gvisor/pkg/tcpip/transport/icmp.send4
        at pkg/tcpip/transport/icmp/endpoint.go:424
     7  0x0000000000865d08 in gvisor.dev/gvisor/pkg/tcpip/transport/icmp.(*endpoint).write
        at pkg/tcpip/transport/icmp/endpoint.go:323
     8  0x00000000008657f8 in gvisor.dev/gvisor/pkg/tcpip/transport/icmp.(*endpoint).Write
        at pkg/tcpip/transport/icmp/endpoint.go:240
     9  0x00000000006435a8 in gvisor.dev/gvisor/pkg/sentry/socket/netstack.(*socketOpsCommon).SendMsg
        at pkg/sentry/socket/netstack/netstack.go:2818
    10  0x000000000058cf50 in gvisor.dev/gvisor/pkg/sentry/syscalls/linux.sendTo
        at pkg/sentry/syscalls/linux/sys_socket.go:1110
    11  0x000000000058d2a8 in gvisor.dev/gvisor/pkg/sentry/syscalls/linux.SendTo
        at pkg/sentry/syscalls/linux/sys_socket.go:1123
    12  0x0000000000522ea4 in gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).executeSyscall
        at pkg/sentry/kernel/task_syscall.go:104
    13  0x0000000000523c5c in gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscallInvoke
        at pkg/sentry/kernel/task_syscall.go:239
    14  0x00000000005238dc in gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscallEnter
        at pkg/sentry/kernel/task_syscall.go:199
    15  0x00000000005233e0 in gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscall
        at pkg/sentry/kernel/task_syscall.go:174
    16  0x0000000000518e00 in gvisor.dev/gvisor/pkg/sentry/kernel.(*runApp).execute
        at pkg/sentry/kernel/task_run.go:282
    17  0x0000000000517d9c in gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).run
        at pkg/sentry/kernel/task_run.go:97
    18  0x0000000000077c84 in runtime.goexit
        at src/runtime/asm_arm64.s:1136
    (dlv) p e
    *gvisor.dev/gvisor/pkg/tcpip/link/sniffer.endpoint {
            Endpoint: gvisor.dev/gvisor/pkg/tcpip/link/nested.Endpoint {
                    child: gvisor.dev/gvisor/pkg/tcpip/stack.LinkEndpoint(*gvisor.dev/gvisor/pkg/tcpip/link/packetsocket.endpoint) ...,
                    embedder: gvisor.dev/gvisor/pkg/tcpip/stack.NetworkDispatcher(*gvisor.dev/gvisor/pkg/tcpip/link/sniffer.endpoint) ...,
                    mu: (*"gvisor.dev/gvisor/pkg/sync.RWMutex")(0x40004cc170),
                    dispatcher: gvisor.dev/gvisor/pkg/tcpip/stack.NetworkDispatcher(*gvisor.dev/gvisor/pkg/tcpip/stack.NIC) ...,},
            writer: io.Writer nil,
            maxPCAPLen: 0,
            logPrefix: "",}
    (dlv) 
    (dlv) bt
     0  0x00000000008d78f8 in gvisor.dev/gvisor/pkg/tcpip/link/packetsocket.(*endpoint).WritePacket
        at pkg/tcpip/link/packetsocket/endpoint.go:40
     1  0x000000000068c95c in gvisor.dev/gvisor/pkg/tcpip/link/nested.(*Endpoint).WritePacket
        at pkg/tcpip/link/nested/nested.go:117
     2  0x000000000068c95c in gvisor.dev/gvisor/pkg/tcpip/link/sniffer.(*endpoint).WritePacket
        at pkg/tcpip/link/sniffer/sniffer.go:192
     3  0x0000000000495c30 in gvisor.dev/gvisor/pkg/tcpip/stack.(*NIC).writePacket
        at pkg/tcpip/stack/nic.go:342
     4  0x0000000000495ac0 in gvisor.dev/gvisor/pkg/tcpip/stack.(*NIC).WritePacket
        at pkg/tcpip/stack/nic.go:324
     5  0x000000000061a33c in gvisor.dev/gvisor/pkg/tcpip/network/ipv4.(*endpoint).writePacket
        at pkg/tcpip/network/ipv4/ipv4.go:368
     6  0x0000000000619fe8 in gvisor.dev/gvisor/pkg/tcpip/network/ipv4.(*endpoint).WritePacket
        at pkg/tcpip/network/ipv4/ipv4.go:331
     7  0x000000000049bfd0 in gvisor.dev/gvisor/pkg/tcpip/stack.(*Route).WritePacket
        at pkg/tcpip/stack/route.go:410
     8  0x0000000000866424 in gvisor.dev/gvisor/pkg/tcpip/transport/icmp.send4
        at pkg/tcpip/transport/icmp/endpoint.go:424
     9  0x0000000000865d08 in gvisor.dev/gvisor/pkg/tcpip/transport/icmp.(*endpoint).write
        at pkg/tcpip/transport/icmp/endpoint.go:323
    10  0x00000000008657f8 in gvisor.dev/gvisor/pkg/tcpip/transport/icmp.(*endpoint).Write
        at pkg/tcpip/transport/icmp/endpoint.go:240
    11  0x00000000006435a8 in gvisor.dev/gvisor/pkg/sentry/socket/netstack.(*socketOpsCommon).SendMsg
        at pkg/sentry/socket/netstack/netstack.go:2818
    12  0x000000000058cf50 in gvisor.dev/gvisor/pkg/sentry/syscalls/linux.sendTo
        at pkg/sentry/syscalls/linux/sys_socket.go:1110
    13  0x000000000058d2a8 in gvisor.dev/gvisor/pkg/sentry/syscalls/linux.SendTo
        at pkg/sentry/syscalls/linux/sys_socket.go:1123
    14  0x0000000000522ea4 in gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).executeSyscall
        at pkg/sentry/kernel/task_syscall.go:104
    15  0x0000000000523c5c in gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscallInvoke
        at pkg/sentry/kernel/task_syscall.go:239
    16  0x00000000005238dc in gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscallEnter
        at pkg/sentry/kernel/task_syscall.go:199
    17  0x00000000005233e0 in gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscall
        at pkg/sentry/kernel/task_syscall.go:174
    18  0x0000000000518e00 in gvisor.dev/gvisor/pkg/sentry/kernel.(*runApp).execute
        at pkg/sentry/kernel/task_run.go:282
    19  0x0000000000517d9c in gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).run
        at pkg/sentry/kernel/task_run.go:97
    20  0x0000000000077c84 in runtime.goexit
        at src/runtime/asm_arm64.s:1136
  • 相关阅读:
    Serialize and Deserialize Binary Tree
    sliding window substring problem汇总贴
    10. Regular Expression Matching
    《深入理解计算机系统》(CSAPP)读书笔记 —— 第七章 链接
    程序员如何写一份合格的简历?(附简历模版)
    9个提高代码运行效率的小技巧你知道几个?
    《深入理解计算机系统》(CSAPP)读书笔记 —— 第六章 存储器层次结构
    24张图7000字详解计算机中的高速缓存
    《深入理解计算机系统》(CSAPP)实验四 —— Attack Lab
    《深入理解计算机系统》(CSAPP)读书笔记 —— 第五章 优化程序性能
  • 原文地址:https://www.cnblogs.com/dream397/p/14299679.html
Copyright © 2020-2023  润新知